繁体   English   中英

如何获取字符串数组的长度

[英]how to get length of string array

char* c[] = { "abc","abcde","abcdef","abcdefg" };

我使用 sizeof(c[0]) 来获取字符串的长度但不起作用。 还有其他获取数组字符串长度的方法吗? 比如 abc = 3,abcde = 5。

与任何定义的数组一样,您可以通过以下方式获取元素的数量:

char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };
size_t c_len = sizeof(c) / sizeof(c[0]);  // 4 elements

请注意, sizeof(c[0])是数组元素的大小,它是指向char ( char * ) 的指针,您使用指向不得更改的字符串常量的指针对其进行初始化。 这个数组的类型应该是:

const char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };

没有编译时方法来获取这些字符串的长度,您必须使用strlen() 但是您可以通过这种方式使用sizeof获取显式字符串文字的长度:

const char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };
size_t len[] = { sizeof("abc") - 1, sizeof("abcde") - 1, sizeof("abcdef") - 1, sizeof("abcdefg") - 1 };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM