[英]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.