簡體   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