在C++中遍历一个字符串

Que*_*ter 8 c++ c++11

我正在寻找类似于在Python中遍历字符串的东西:

for char in str:
    do something
Run Code Online (Sandbox Code Playgroud)

我怎么能用C++做到这一点?

谢谢

Mik*_*our 24

如果strstd::string,或其他一些标准容器char,那就是

for (char c : str) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

如果要修改字符串的字符,那么您将需要引用char & c而不是值char c.


Mar*_* A. 12

使用std :: string,它将变得非常简单:

std::string myStr = "Hello";
for (char c : myStr)
    std::cout << c; // Print out every character
Run Code Online (Sandbox Code Playgroud)

或者通过引用,如果你想修改它..

std::string myStr = "Hello";
for (char& c : myStr)
    c = 'A';
// mystr = "AAAAA"
Run Code Online (Sandbox Code Playgroud)

  • @matsjoyce:但这是一个`char`,而不是一个疯狂的嵌套(或不可思议)类型.所有`auto`在这里做的是让它更难以计算出类型. (4认同)