📅  最后修改于: 2023-12-03 15:08:51.929000             🧑  作者: Mango
在C++中,我们有多种方法来迭代字符串。在本文中,我将介绍逐字逐字地迭代一个字符串的方法,这是一种极其基本的技能,但它在很多实际应用场景中都有用武之地。
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中引入了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样式字符串来迭代字符串。
#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样式字符串都可以达到这个目的。无论您选择哪种方法,理解这些基本的技能都是编程中必不可少的。