(C语言初学者题目)C语言:输入一行字符,统计其中字母个数,数字个数,其他字符个数并输出计算结果。

输入一行字符,统计其中字母个数,数字个数,其他字符个数并输出计算结果。

输入
测试次数t
t行字符

输出

每行字符输出计算结果,格式见样例

样例输入
2
ABC123%xy+
szuC++

样例输出
ALPHA:5 DIGIT:3 OTHER:2
ALPHA:4 DIGTI:0 OTHER:2
我就是在输入那里换行搞定不了,输出那里想到要用二维数组
麻烦给我一个完整的代码

#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个回答  2018-07-05
#include "stdafx.h"
#include<stdio.h>
#include<math.h>

int main()
{
int shu=0, zi=0, other=0;
int i=0;
char s[1024];
gets_s(s);
while (s[i] != '\0') {
if (s[i] > 47 && s[i] < 58)
shu++;
else if ((s[i] < 123 && s[i]>96) || (s[i] > 64 && s[i] < 91))
zi++;
else other++;
i++;
}
printf("数字:%d\n字母:%d\n其他:%d", shu, zi, other);
    return 0;
}

相似回答