std::string字符串遍历
时间: 2024-02-23 17:54:28 浏览: 95
std::string是C++中的字符串类,可以通过多种方式进行遍历。以下是几种常见的遍历方式:
1. 使用下标访问:可以通过使用下标运算符[]来访问字符串中的每个字符。例如:
```cpp
std::string str = "Hello";
for (int i = 0; i < str.length(); i++) {
char c = str[i];
// 对字符c进行处理
}
```
2. 使用迭代器:std::string提供了begin()和end()成员函数,可以返回指向字符串起始位置和结束位置的迭代器。可以使用迭代器来遍历字符串中的每个字符。例如:
```cpp
std::string str = "Hello";
for (auto it = str.begin(); it != str.end(); ++it) {
char c = *it;
// 对字符c进行处理
}
```
3. 使用范围-based for 循环:C++11引入了范围-based for循环,可以更简洁地遍历字符串中的每个字符。例如:
```cpp
std::string str = "Hello";
for (char c : str) {
// 对字符c进行处理
}
```
这些是常见的遍历std::string字符串的方式。你还有其他相关问题吗?
相关问题
std::string分割字符串
std::string分割字符串的方法有两种。第一种方法是根据指定字符来分割字符串,可以使用splitstr函数。该函数接受一个字符串和一个字符作为参数,将字符串按照指定字符进行分割,并返回一个字符串列表。具体实现步骤如下:
1. 创建一个空的字符串列表li和一个空字符串subStr用于存放子串。
2. 遍历字符串str,将字符串中的每个字符依次放入子串subStr中。
3. 当遇到指定字符tag时,将当前的subStr添加到li列表中,并清空subStr。
4. 遍历结束后,如果subStr不为空,将其作为最后的子字符串添加到li列表中。
5. 返回li列表作为分割后的字符串结果。
第二种方法是根据传入的一段字符串作为模式进行分割,可以使用splitstr函数。该函数接受一个字符串和一个模式字符串作为参数,将字符串按照模式字符串进行分割,并返回一个字符串列表。具体实现步骤如下:
1. 创建一个空的字符串列表li和一个空字符串subStr用于存放子串。
2. 遍历字符串str,将字符串中的每个字符依次放入子串subStr中。
3. 当遇到需要检测的pattern子串时,获取当前位置开始的与模式字符串长度相等的子串tPattern。
4. 如果tPattern与模式字符串相等,则说明找到一个匹配的模式,完成一次切割。此时将当前的subStr添加到li列表中,并清空subStr。
5. 如果tPattern与模式字符串不相等,则说明当前位置的字符不是模式字符串的一部分,将当前的字符放入subStr中。
6. 遍历结束后,如果subStr不为空,将其作为最后的子字符串添加到li列表中。
7. 返回li列表作为分割后的字符串结果。
std::string将字符串转换成字符中字符所代表的十进制数据
如果你想要将std::string中的字符转换为其所代表的十进制数据,你可以使用std::stoi或std::stol函数。这些函数可以将字符串转换为整数或长整数。
下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "12345";
for (char c : str) {
int decimalValue = std::stoi(std::string(1, c));
std::cout << decimalValue << " ";
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
在上面的示例中,我们遍历了字符串中的每个字符,并使用std::stoi函数将其转换为整数。注意,我们将字符c转换为一个长度为1的字符串,然后将其作为参数传递给std::stoi函数。这样可以确保将字符转换为对应的十进制数据。
阅读全文