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 に答える