#include<stdio.h>
main()
{
inti;
char*s="a\045+045\000";
for(i=0;*s++;i++)
;
printf("%d\07",i);
}
输出6
其中字符个数是这么算的
a i=1
\045 i=2
+ i=3
0 i=4
4 i=5
5 i=6
\000不算
特别注意:!!!
字符除了常见的“a”“A”等,还有就是控制字符有:
\n 换行 \t横向跳格 \v纵向跳格 \b退格 \r回车 \f 走纸换页 \\反斜杠 \’单引号 \?问号 \”双引号 \o空格
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数字代表的字符
这里看的是其ASIIC码值,所以字符“0”不为0;
\0 \00 \000 \ddd(其中有一位数字大于7) \xhh(其中有一位大于E)这些情况都不是一个合理字符,均认为其值为0,停止循环并输出i
#include<stdio.h>
main()
{
inti;
char*s="a\0+45045\000";
for(i=0;*s++;i++)
;
printf("%d\07",i);
}
输出1