输入一行字符,统计其中英文字母、空格、数字和其它字符的个数。
解决:
定义足够大的数组,然后以%s为输入格式,一次性输入字符。然后再通过访问数组的每个元素得到其ASCII码,通过条件控制语句输出。
#include <stdio.h>
int main(void) {
char str1[5];
scanf(“%s”,str1);//注意:不用加&
printf("%s\n", str1);
return 0;
}
解决:
用gets()函数的话,遇到空格就不会返回了,遇到回车才返回。
#include <stdio.h>
int main(void) {
char str1[5];
gets(str1);//与scanf的写法不同
printf("%s\n", str1);
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char str[200];
gets(str);//gets()和scanf()的输入格式不同。此处若用scanf()则总在空格键入时停止输入
int n=strlen(str);
int a[n];
for(int i=0;i<n;i++){
a[i]=str[i];
}
int w=0,x=0,y=0,z=0;
for(int j=0;j<n;j++){
if(a[j]>=65&&a[j]<=90){
w++;
}
else if(a[j]>=97&&a[j]<=122){
w++;
}
else if(a[j]==32){
x++;
}
else if(a[j]>=48&&a[j]<=57){
y++;
}
else{
z++;
}
}
printf("%d\n%d\n%d\n%d",w,x,y,z);
}
因篇幅问题不能全部显示,请点此查看更多更全内容