1439 - C语言-字符统计2
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
Input
一行字符串
Output
统计数据,4个数字,空格分开。
Examples
Input
!@#$%^QWERT 1234567
Output
5 7 4 6
Solution C
#include<stdio.h> #include<string.h> int main() { char str[10000]; int b,i,z,s,k,q; z=s=k=q=0; gets(str); b=strlen(str); for(i=0;i<b;i++) { if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122)z++; else if(str[i]>=48&&str[i]<=57)s++; else if(str[i]==32)k++; else q++; } printf("%d %d %d %d",z,s,k,q); return 0; }
Solution C++
#include "stdio.h" #include "string.h" int num(char str[]) { int i,sum=0; for(i=0;str[i]!='\0';i++) if(str[i]>='0'&&str[i]<='9') sum++; return sum; } int chart(char str[]) { int i,sum=0; for(i=0;str[i]!='\0';i++) if(str[i]>='A'&&str[i]<='Z'||(str[i]>='a'&&str[i]<='z')) sum++; return sum; } int kongge(char str[]) { int i,sum=0; for(i=0;str[i]!='\0';i++) if(str[i]==' ') sum++; return sum; } int qita(char str[]) { int len; len=strlen(str); return len-kongge(str)-chart(str)-num(str); } int main(int argc, char* argv[]) { char str[100]; while(gets(str)) { printf("%d %d %d %d \n",chart(str),num(str),kongge(str),qita(str)); } return 0; }