|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 工科男 于 2016-7-24 08:25 编辑
如题,我先把代码贴上来。- #include <stdio.h>
- int main ()
- {
- void f(char x[]);
- char a[100];
- printf ("请输入一串字符串:\n");
- gets(a);
- f(a);
- printf ("\n");
- return 0;
- }
- void f(char x[])
- {
- int i;
- int n=0,m=0,j=0,k=0;
- for (i=0;x[i]!='\0';i++)
- {
- if ((x[i]>='0')&&(x[i]<='9'))
- n++;
- else if (((x[i]>='a')&&(x[i]<='z'))||((x[i]>='A')&&(x[i]<='Z')))
- m++;
- else if (x[i]==32)
- j++;
- else
- k++;
- }
- printf ("该字符串含有字母:%d 个\n",m);
- printf ("该字符串含有数字:%d 个\n",n);
- printf ("该字符串含有空格:%d 个\n",j);
- printf ("该字符串含有其他符号:%d 个\n",k);
- }
复制代码
论坛代码的注释好像不能贴上去,所以我就截图了,而且感觉截图还不大清晰,所以,我就把这些问题打出来。
请大家看一下代码段的第22行,我的问题就出在那里:
这一行就是我所困惑的地方,当我写成x[i]==32时,结果正确,
但是写成x[i]=='32'时候,结果就不正确了。
空格在ASCII码中的编号是32,而且,我定义与使用的都是字符串,
很明显,在ASCII中的0~127之间的字符,整型与字符数据可以互换。
而字符数据在使用过程中都应该加单引号吧,比如本案例 x[i]>='a' 或者 x[i]<='9'
所以困惑,为什么要写成 x[i]==32,而不写成 x[i]=='32'
在此先谢谢各位大神了!! |
|