2017-02-18 97 views
0

所以我只想在C++中创建一个C字符串数组。是的,我知道C++使用字符串数据类型,但是我正在处理的内容需要我创建一个C字符串数组。 C字符串本身就是一个字符数组。那么制作一个C字符串数组就像制作一个二维字符数组一样?然后访问每个单独的字符,我需要指定其各自的行和列位置。不过,我想把它想象成C字符串的一维数组,其中每个索引都返回一个完整的C字符串。我怎样才能做到这一点?请解释。我如何遍历这样一个数组并打印出或返回每个C字符串,而不是使用嵌套循环分别返回每个字符?如何创建一个C字符串数组?

回答

1

对于字符串文字你可以这样做:

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; 
} 
0

A C风格串无非,基本上,一个阵列的char,具有'\0'终止。有“串”的数组,你只是有一个数组的数组,就像

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

或者你可以有一个指针数组:

char* my_array_of_strings[ARRAY_SIZE]; 

哪一个是最好的取决于你的使用-cases。