簡體   English   中英

如何創建C字符串數組?

[英]How to create an array of C-strings?

所以我只想在C ++中創建一個C字符串數組。 是的,我知道C ++使用字符串數據類型,但是我正在從事的工作要求我制作一個C字符串數組。 C字符串本身是一個字符數組。 那么,制作C字符串數組就像制作二維char數組一樣嗎? 然后,要訪問每個單獨的字符,我需要指定其各自的行和列位置。 但是,我想把它想象成一個C字符串的一維數組,其中每個索引都返回一個完整的C字符串。 我怎樣才能做到這一點? 請解釋。 如何遍歷這樣的數組並打印或返回每個C字符串,而不是使用嵌套循環分別返回每個字符?

對於字符串文字,您可以執行以下操作:

const char *strings[] = { "foo", "bar", "blech" };

對於要修改的字符串數組,您可以執行以下操作:

char strings[3][80] = { "foo", "bar", "blech" };

無論哪種方式,您都可以像這樣打印它們:

for (int i = 0; i < 3; ++i)
{
    std::cout << strings[i] << std::endl;
}

或更習慣上:

for (auto & s : strings)
{
    std::cout << s << std::endl;
}

C風格的字符串基本上只不過是一個以'\\0'結尾的char 數組 要擁有“字符串”數組,您只需擁有一個數組數組,例如

char my_array_of_strings[ARRAY_SIZE][STRING_SIZE + 1];  // +1 for terminator

或者,您可以有一個指針數組:

char* my_array_of_strings[ARRAY_SIZE];

哪一個最好取決於您的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM