求编程答案:输入一行字符,统计其中大写字母、 小写字母、数字个数,并输出统计结果。 提示:判定输入一

如题所述

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) 
{
    int n=0,i;;
    printf("请输入行数:");
    scanf("%d",&n);
    //动态分配char*二维数组--开始 
    char** s;
    s=(char**)malloc(sizeof(char*)*n);
    for(i=0;i<n;i++)
    {
        s[i]=(char*)malloc(sizeof(char)*128);
    }
    //动态分配char*二维数组--结束 
    for(i=0;i<n;i++)
    {
        scanf("%s",s[i]);
    }
    for(i=0;i<n;i++)
    {
        int len=strlen(s[i]);
        int j,alpha=0,digit=0,other=0;
        for(j=0;j<len;j++)
        {
            if(s[i][j]>='0' && s[i][j]<='9')
            {
                digit++;
            }
            else if((s[i][j]>='A' && s[i][j]<='Z') || (s[i][j]>='a' && s[i][j]<='z'))
            {
                alpha++;
            }
            else
            {
                other++;
            }
        }
        printf("\nALPHA: %d    DIGIT: %d    OTHER: %d",alpha,digit,other);
    }
    return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-14
#include <stdio.h>
#include <string.h>
main()
{char s[100];
int i,dx,xx,qt;
dx=0;
xx=0;
qt=0;
printf("请输入字符串");
gets(s);
for(i=0;i<strlen(s);i++)
{
if(s[i]<='z'&&s[i]>='a')
xx++;
else if(s[i]<='Z'&&s[i]>='A')
dx++;
else qt++;}
printf("大写%d个,小写%d个,其他的%d个\n",dx,xx,qt);}本回答被网友采纳
相似回答