char* c[] = { "abc","abcde","abcdef","abcdefg" };
我使用 sizeof(c[0]) 來獲取字串的長度但不起作用。獲取陣列字串長度的任何其他方法?比如 abc = 3,abcde = 5。
uj5u.com熱心網友回復:
與任何定義的陣列一樣,您可以通過以下方式獲取元素的數量:
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 };
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442975.html
標籤:C
