不得不说这也是我们的作业之一。但是这东西要用上数组,我们还没学过数组呢,不过博主学过PHP,可以类套嘛。判断方法不止一种,可以用ASCII码来判断,博主比较懒,直接调用函数。(博客原因缩进难免会有不规范)
注意:scanf里面用%s不能接收字符窜中的空格,空格以后会被截断,用正则即可解决。(博主也是百度后才知道能用正则)
#include <stdio.h>
#include <string.h>
int main()
{
char c[100];
int digit =0,letter=0,space =0;
printf("请输入一个100位以下的字符串:");
scanf("%[^\n]",c); //正则获取除转行外的字符串
int str = strlen(c); printf("你输入的字符串长度为:%d\n字符串为:%s\n",str,c);
for(int i =0;i < str; i++)
{
if(isdigit(c[i]))
digit += 1;
if(isalpha(c[i]))
letter += 1;
if(c[i] == 32)
space +=1;
}
printf("数字有 %d 个\n",digit);
printf("字母有 %d 个\n",letter);
printf("空格有 %d 个\n",space);
printf("其他字符有 %d 个\n",str - digit -letter-space);
return 0;
}
运行截图
本文链接:http://rainss.cn/essay/655.html