求大牛相助!!!
#include<stdio.h>
int main()
{
int letter=0,digit=0,space=0,others=0,i;
char a[100];
for(i=0;scanf("%c",&a[i])!='\n';i++)
{
if(((a[i]>='a')&&(a[i]<='z'))||((a[i]>='A')&&(a[i]<='Z')))
letter++;
else if((a[i]>=0)&&(a[i]<=9))
digit++;
else if(a[i]=='')
space++;
else
others++;
}
printf("%d %d %d %d\n",letter,digit,space,others);
}
这个代码为什么过不了。。。
[解决办法]
#include<stdio.h>
int main()
{
int letter=0,digit=0,space=0,others=0,i;
char a[100];
for(i=0;scanf("%c",&a[i]) && a[i]!='\n';i++)
{
if(((a[i]>='a')&&(a[i]<='z'))
[解决办法]
((a[i]>='A')&&(a[i]<='Z')))
letter++;
else if((a[i]>='0')&&(a[i]<='9'))
digit++;
else if(a[i]==' ')
space++;
else
others++;
}
printf("%d %d %d %d\n",letter,digit,space,others);
}
[解决办法]
lz 看看 ctype.h
for(i=0;scanf("%c",&a[i])!='\n';i++) 很特别的用法
[解决办法]
else if(a[i]=='')//此处的''内没有空格,应该为' ';
space++;
[解决办法]
统计字母,数字,空格,其他
#include<stdio.h>
#include <string.h>
int main()
{
int letter=0,digit=0,space=0,others=0,i;
char a[100];
gets(a);
//for(i=0;scanf("%c",&a[i])!='\n';i++) //Returns the number of fields successfully converted and assigned
for(i=0;i<strlen(a);i++)
{
if(((a[i]>='a')&&(a[i]<='z'))
[解决办法]
((a[i]>='A')&&(a[i]<='Z')))
letter++;
else if((a[i]>='0')&&(a[i]<='9')) //a[i]是5,但是他是个char啊~~
digit++;
else if(a[i]==' ') //这里是空格,是 ‘ ’不是‘’
space++;
else
others++;
}
printf("%d %d %d %d\n",letter,digit,space,others);
}
[解决办法]
#include<stdio.h>
#include <string.h>
int main()
{
int letter=0,digit=0,space=0,others=0,i;
char a[100];
gets(a);
//for(i=0;scanf("%c",&a[i])!='\n';i++) //Returns the number of fields successfully converted and assigned
for(i=0;i<strlen(a);i++)
{
if(((a[i]>='a')&&(a[i]<='z'))
[解决办法]
((a[i]>='A')&&(a[i]<='Z')))
letter++;
else if((a[i]>='0')&&(a[i]<='9')) //(掉了两字)假设a[i]是5,但是他是个char啊
digit++;
else if(a[i]==' ') //这里是空格,是 ‘ ’不是‘’
space++;
else
others++;
}
printf("%d %d %d %d\n",letter,digit,space,others);
}
[解决办法]
我运行你的程序, 显示这个错误error C2137: empty character constant,英文意思不懂,百度了下,有这个意思《 这个单引号要有个空格 这个英文的意思就是提示空字符》,然后在你错误显示的地方
else if(a[i]=='')中间加多一个空格,问题就解决了。程序有错误提示的话,试着先自己解决