我正在尝试练习一些 C++ 的东西,并且被困在一些很难用谷歌搜索或找到答案的东西上。
基本上说我们有:
char* myarray[] = {"string","hello", "cat"};
我怎么会说得到 myarray[1] 这是“字符串”,然后遍历字母字符串 g。
我正在查看向量,想知道这是否是采用的路径,或者可能采用 myarray[1] 并将其存储到另一个数组中,然后再遍历它。这样做的最佳方法是什么
这在 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
以下代码:
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>
会有所不同,理解这一点很重要。