字符類元素個數統計

題目:

2、寫一個程序,統計字符串的大寫字母個數、小寫字母個數、數字個數和其它字符個數。用函數func實現功能,在main中,至少使用10個字符串對函數進行測試。(30分)

提示:

函數名:func3

入口參數:一個字符串

返回結果:一個結構體(包括大寫字母個數、小寫字母個數、數字個數和其它字符個數)

提示:

  如果輸入字符串爲:"123abcABC1 45#"

  返回結構體的結果爲:{upper:3,lower:3,digits:6,others:2}


注:本題把字符型m[i](char)的元素賦值給整型 k(int)得到字符的ASCII碼值,每個字符的ASCII碼值是唯一的.在根據ASCII碼值找到對應的M[]數組單元進行累加

代碼:

#include <stdio.h>
#include <stdlib.h>
void func(char *m,int len)
{
    int i,k;
    int M[5]={0};//將M[]數組每個單元都置爲零;
    for(i=0;i<len;i++)
    {
        k=m[i];//將數組m中的字符元素一個一個提取出來賦值給整型k,k接收的是字符的ASCII碼值;(ASCII碼值是唯一的)
        if(k>=48&&k<=57)
            M[2]++;
       else if(k>=65&&k<=90)
            M[0]++;
        else if(k>=97&&k<=122)
            M[1]++;
        else
            M[3]++;
    }
    for(i=0;i<4;i++)//輸出K;
    {
         if(i==2)
       printf("digits:%d,",M[i]);
        if(i==0)
       printf("upper:%d,",M[i]);
        if(i==1)
       printf("lower:%d,",M[i]);
       if(i==3)
        printf("others:%d",M[i]);
    }


}
int main()
{


        char *m;
        int len;
        m=(char *)malloc(sizeof(char)*20);//動態分配空間
        gets(m);
        len=strlen(m);
         func(m,len);
         return 0;
}

發佈了35 篇原創文章 · 獲贊 72 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章