如何在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。