1

我正在尝试练习一些 C++ 的东西,并且被困在一些很难用谷歌搜索或找到答案的东西上。

基本上说我们有:

char* myarray[] = {"string","hello", "cat"};

我怎么会说得到 myarray[1] 这是“字符串”,然后遍历字母字符串 g。

我正在查看向量,想知道这是否是采用的路径,或者可能采用 myarray[1] 并将其存储到另一个数组中,然后再遍历它。这样做的最佳方法是什么

4

2 回答 2

4

这在 C++11 中非常简单(使用std::string而不是指向字符数组的指针):

#include <iostream>
#include <string>

int main()
{
    std::string myarray[] = {"string","hello", "cat"};
    for (auto c : myarray[0]) { std::cout << c << " "; }
}

输出(现场示例):

s t r i n g
于 2013-03-14T19:08:37.333 回答
3

以下代码:

for(int i = 0; i < strlen(myarray[0]); i++) {
    printf("%c\n", myarray[0][i]);
}

会打印出来

s
t
r
i 
n
g

如果您想练习 C++ 而不是 C,我建议您学习std::stringstd::vector. 它们并不总是解决方案,但通常首先使用它们是正确的答案。的内存布局std::vector<std::string>会有所不同,理解这一点很重要。

于 2013-03-14T19:06:35.257 回答