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

我想找到这个的长度:

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

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

你正在制作一个char*而不是char的数组。 这就是为什么strlen不起作用的原因。 使用

 sizeof(s) / sizeof(char*) //should give 3 

如果你想要一个字符串使用

 char s[] = "sab"; 

sizeof(s) / sizeof(s[0])无论何种类型包含都适用。

您定义的不是字符串,因此没有NULL终止字符。 在这里,您已声明指向3个单独字符串的指针。 顺便说一下,你应该将你的数组声明为const char*

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

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

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

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