字符串与字符数组
下面程序的输出结果是____________。
1 2 3 4 5 6 7 8 9 10 11 12 13 | // 2011_3_C_21 #include <stdio.h> int main() { char s[]="012xy\08s34f4w2"; int i,n=0; for(i=0; s[i]!=0; i++) if (s[i]>='0'&&s[i]<='9') n++; printf("%d\n",n); return 0; } |
A. 0
B. 8
C. 3
D. 7
正确答案:C
题目解析:本题很具有欺骗性。程序的作用是统计字符串中数字字符的个数。\0表示字符串的结束,也就是说 s[5]=0,\0 后面的不再进行统计。
作为字符数组,数组的大小是15,作为字符串,长度是5。
1 2 3 4 5 6 7 8 9 | #include <stdio.h> #include <string.h> int main() { char s[]="012xy\08s34f4w2"; printf("%d %d\n",sizeof(s), strlen(s)); return 0; } |
输出结果: 15 5