我想找到这个的长度:
char *s[]={"s","a","b"};
它应该用/ 0计数4但是strlen或sizeof(s)/ sizeof(char)给出了错误的答案.. 我怎么能找到它?
答案 0 :(得分:10)
您正在制作char*
而不是char
的数组。这就是strlen
不起作用的原因。使用
sizeof(s) / sizeof(char*) //should give 3
如果您想使用单个字符串
char s[] = "sab";
答案 1 :(得分:7)
sizeof(s) / sizeof(s[0])
无论s
包含哪种类型都有效。
答案 2 :(得分:3)
您定义的不是字符串,因此没有NULL终止字符。在这里,您已声明指向3个单独字符串的指针。顺便说一句,你应该将你的数组声明为const char*
。
答案 3 :(得分:1)
strlen会起作用。除非您跟踪它,否则无法在char数组中找到元素数。即将它存储在像n这样的变量中。每次添加成员增量n时,每次删除减量n
答案 4 :(得分:1)
没有直接的方法来确定C中数组的长度.C中的数组由内存中的连续块表示。
您必须将数组的长度保持为单独的值。
答案 5 :(得分:0)
为什么要数到4?你在这个数组中有3个指向char的指针,它在大多数32位平台上应该是12个。