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