習題8-9 分類統計各類字符個數(15 分)


本題要求實現一個函數,統計給定字符串中的大寫字母、小寫字母、空格、數字以及其它字符各有多少。

函數接口定義:

void StringCount( char *s );

其中 char *s 是用戶傳入的字符串。函數StringCount須在一行內按照

大寫字母個數 小寫字母個數 空格個數 數字個數 其它字符個數

的格式輸出。

裁判測試程序樣例:

#include <stdio.h>
#define MAXS 15

void StringCount( char *s );
void ReadString( char *s ); /* 由裁判實現,略去不表 */

int main()
{
    char s[MAXS];

    ReadString(s);
    StringCount(s);

    return 0;
}

/* Your function will be put here */

輸入樣例:

aZ&*?
093 Az

輸出樣例:

2 2 1 3 4
#include <string.h>

void StringCount( char *s )

{

    int cap=0,low=0,bla=0,num=0,els=0,i,n;

    n=strlen(s);

    for(i=0;i<n;i++)

    {

        if(s[i]>='A'&&s[i]<='Z')

            cap++;

        else if(s[i]>='a'&&s[i]<='z')

            low++;

        else if(s[i]==' ')

            bla++;

        else if(s[i]>='0'&&s[i]<='9')

            num++;

        else

            els++;

    }

    printf("%d %d %d %d %d",cap,low,bla,num,els);

}

優化下

void StringCount( char *s )

{

    int cap=0,low=0,bla=0,num=0,els=0,i=0;

 

    while(s[i]!='\0')

    {

        if(s[i]>='A'&&s[i]<='Z')

            cap++;

        else if(s[i]>='a'&&s[i]<='z')

            low++;

        else if(s[i]==' ')

            bla++;

        else if(s[i]>='0'&&s[i]<='9')

            num++;

        else

            els++;

        i++;

    }

    printf("%d %d %d %d %d",cap,low,bla,num,els);

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM