一道C语言数组的问题,求详解。
2个回答
展开全部
选b.strlen是测量长度的函数,遇到\o停止。此题中有a,b,c,d,\n,0,1,2,\1,\\共十个数,所以选b。PS:strlen(char *)
作用:检测字符串实际长度。
如:char s[]="1234567";
int a=strlen(s);//a=7
实际上strlen(char *)检测的是'\0',strlen(char *)碰到'\0'就返回'\0'以前的字符数。
又如:
char f[]="123456\01111";
int b=strlen(f);//b=6,因为遇到了'\0'
char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,
它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')
作用:检测字符串实际长度。
如:char s[]="1234567";
int a=strlen(s);//a=7
实际上strlen(char *)检测的是'\0',strlen(char *)碰到'\0'就返回'\0'以前的字符数。
又如:
char f[]="123456\01111";
int b=strlen(f);//b=6,因为遇到了'\0'
char h[4]={'f','0',0,'h'} ;//注:不能写成char h[4]="f0\0h";因为以""括起来的为字符串,
它隐式的以'\0'结尾,而'\0'也占一个字节,所以应写为char h[5]="f0\0h"
int c=strlen(h);//c=2,因为遇到了'\0'(注意'0'不等于'\0',而0等于'\0')
更多追问追答
追问
能不能详细说一下为啥是10个要是带斜杠我数的是13个,不带斜杠我数的是9.就不是十个。
追答
A,B,C,D,\n,o,1,2,\l,\\共10个·,而字符串中的隐藏的\o不算在内
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询