如何在c中查找char数组的长度

时间:2011-05-14 11:57:21

标签: c arrays

我想找到这个的长度:

char *s[]={"s","a","b"};

它应该用/ 0计数4但是strlen或sizeof(s)/ sizeof(char)给出了错误的答案.. 我怎么能找到它?

6 个答案:

答案 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)

如果使用null字符终止数组,

strlen会起作用。除非您跟踪它,否则无法在char数组中找到元素数。即将它存储在像n这样的变量中。每次添加成员增量n时,每次删除减量n

答案 4 :(得分:1)

没有直接的方法来确定C中数组的长度.C中的数组由内存中的连续块表示。

您必须将数组的长度保持为单独的值。

答案 5 :(得分:0)

为什么要数到4?你在这个数组中有3个指向char的指针,它在大多数32位平台上应该是12个。