1. ホーム
  2. c++

[解決済み】文字列内のすべての文字について

2022-04-18 18:20:07

質問

C++で文字列のすべての文字に対してforループを行うにはどうしたらよいでしょうか?

どのように解決するのですか?

  1. をループさせる。 文字 std::string これはC++11のもので、最近のGCC、clang、VC11ベータ版ですでにサポートされています)。

    std::string str = ???;
    for(char& c : str) {
        do_things_with(c);
    }
    
    
  2. の文字列をループしています。 std::string イテレータを使用しています。

    std::string str = ???;
    for(std::string::iterator it = str.begin(); it != str.end(); ++it) {
        do_things_with(*it);
    }
    
    
  3. の文字列をループしています。 std::string を昔ながらのfor-loopで表現しています。

    std::string str = ???;
    for(std::string::size_type i = 0; i < str.size(); ++i) {
        do_things_with(str[i]);
    }
    
    
  4. ヌル文字で終端する文字配列の文字をループ処理する。

    char* str = ???;
    for(char* it = str; *it; ++it) {
        do_things_with(*it);
    }