📜  如何在C ++中逐字逐字地迭代字符串(1)

📅  最后修改于: 2023-12-03 15:08:51.929000             🧑  作者: Mango

如何在C ++中逐字逐字地迭代字符串

在C++中,我们有多种方法来迭代字符串。在本文中,我将介绍逐字逐字地迭代一个字符串的方法,这是一种极其基本的技能,但它在很多实际应用场景中都有用武之地。

使用C++11范围循环

C++11中引入了范围循环,它可以用来循环遍历容器类,包括字符串。在这个例子中,我们将使用范围循环遍历字符串,将字符串中的每个字符逐一输出:

#include <iostream>
#include <string>

int main()
{
    std::string str = "Hello, world!";

    for (char c : str) {
        std::cout << c << std::endl;
    }

    return 0;
}

这段代码将输出:

H
e
l
l
o
,
 
w
o
r
l
d
!
使用C++11迭代器

迭代器是用于遍历序列容器的一种通用方法,因此我们也可以使用迭代器来迭代字符串。C++11中引入了auto,它可以用于自动推导出变量的类型,使我们更加方便地使用迭代器。在这个例子中,我们将使用auto和迭代器来遍历字符串,将字符串中的每个字符逐一输出:

#include <iostream>
#include <string>

int main()
{
    std::string str = "Hello, world!";

    for (auto it = str.begin(); it != str.end(); ++it) {
        std::cout << *it << std::endl;
    }

    return 0;
}

这段代码将输出与范围循环相同的结果:

H
e
l
l
o
,
 
w
o
r
l
d
!
使用C样式字符串

虽然在C ++中使用C样式字符串不被推荐,但是在某些场景中,仍然存在着需要这样做的情况。在这个例子中,我们将使用C样式字符串来迭代字符串。

#include <iostream>
#include <cstring>

int main()
{
    char str[] = "Hello, world!";

    for (char* c = str; *c; ++c) {
        std::cout << *c << std::endl;
    }

    return 0;
}

这段代码将输出与前两个例子相同的结果:

H
e
l
l
o
,
 
w
o
r
l
d
!
总结

本文介绍了在C ++中逐字逐字地迭代一个字符串的方法。使用C++11范围循环和迭代器,以及C样式字符串都可以达到这个目的。无论您选择哪种方法,理解这些基本的技能都是编程中必不可少的。