main()
{ char s[]="012xy\08s34f4w2"//这里是字符数组,里面存升清逗放的是字符
int i,n=0
for(i=0s[i]!=0i++) //这里的正悔 s[i] 是一个字符;将其ASCII码值 与0比较
if(s[i]>='0'&&s[i]<='9') n++
printf("%d\n",n)
}
char s[]="012xy\08s34f4w2" //存放到数组里吵卖的内容为
s[1] = '1' ,其ASICC码值为49 不等于0
s[2] = '2' ,其ASICC码值为50 不等于0
s[3] = 'x' ,其ASICC码值为120 不等于0
s[4] = 'y' ,其ASICC码值为121 不等于0
s[5] = '\0' ,该字符为字符串结束符,其ASCII码值为0 因此循环一直要进行到这里才会退出for循环
程序功能是计算字符数组中 在出现结束符之前的字符中有多少个数字字符
因此答案为三个 (0、1、2), 输出的n的值为3
请注意 数字字符 与数字的差别即:
'0' - 0 = 48 // 数字字符与对应数字的 差值为整数十进制48 可参考ASCII码值表
'9' - 9 = 48
#include<stdio.h>清旅int main()
{
char a
int i=6
while(--i)
{
printf("You have %d chances.Please input a character:",i)
a=getchar()
getchar()
if(a=='A')
{
printf("答掘凳Congratulations!\n")
break
}
else{
printf("Please try again.\散孙n")
}
}
if(i==0)
printf("You've tried too many times!\n")
getchar()
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)