我正在尝试练习一些c ++的东西,并且已经陷入难以谷歌或找到答案的事情上。
基本上说我们有:
char* myarray[] = {"string","hello", "cat"};
我怎么会说得到myarray [1]这是“字符串”然后遍历字母s t r r n g。
我正在寻找向量,并想知道这是否是采取或可能采用myarray [1]的路线,并在迭代之前将其存储到另一个数组中。这样做的最佳方式是什么
答案 0 :(得分: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 << " "; }
}
输出(live example):
s t r i n g
答案 1 :(得分: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::string
和std::vector
。它们并不总是解决方案,但通常首先使用它们才是正确的答案。 std::vector<std::string>
的内存布局会有所不同,了解这一点非常重要。