从字符串数组中获取字符值

时间:2013-03-14 19:04:52

标签: c++ arrays string

我正在尝试练习一些c ++的东西,并且已经陷入难以谷歌或找到答案的事情上。

基本上说我们有:

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

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

我正在寻找向量,并想知道这是否是采取或可能采用myarray [1]的路线,并在迭代之前将其存储到另一个数组中。这样做的最佳方式是什么

2 个答案:

答案 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::stringstd::vector。它们并不总是解决方案,但通常首先使用它们才是正确的答案。 std::vector<std::string>的内存布局会有所不同,了解这一点非常重要。