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

ste*_*ios 6 c arrays

我想找到这个的长度:

char *s[]={"s","a","b"};
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ica 10

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

sizeof(s) / sizeof(char*) //should give 3
Run Code Online (Sandbox Code Playgroud)

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

char s[] = "sab";
Run Code Online (Sandbox Code Playgroud)


lhf*_*lhf 7

sizeof(s) / sizeof(s[0])无论什么类型s包含,都可以工作

  • +1:我喜欢`sizeof s/sizeof*s`(或者,使用冗余括号,`sizeof(s)/ sizeof(*s)`). (3认同)