文章目录
- 引用头文件
- 初始化赋值
- 1. 空串
- 2. 拷贝复制
- 3. 直接初始化赋值
- 4. 单个字符初始化
- 遍历 string 类
- 1. 下标索引遍历
- 2. 迭代器遍历
- 3. 使用 range for 循环遍历字符串(需要 C++11 或更新的版本)
- string 常用方法
- 判断字符串是否为空串
- 获取字符串中字符个数
- 插入元素
- 删除元素
- 追加字符串
- 替换字符串中指定字符
- 字符串翻转
- 返回可以直接打印的字符串
- 处理string对象中的字符 ,针对某个字符的特性判断函数
引用头文件
#include <iostream>
#include <string>
初始化赋值
1. 空串
string s; //s是一个空串
2. 拷贝复制
string s2=s1; //拷贝初始化,s1是string类对象
string s2(s1); //直接初始化,s1是string类对象
3. 直接初始化赋值
string s1=“hello world”; //拷贝初始化
string s2(“hello world”); //直接初始化
4. 单个字符初始化
string s(10, 'a'); //直接初始化,s的内容是aaaaaaaaaa
遍历 string 类
1. 下标索引遍历
#include <iostream>
#include <string>int main() {std::string str = "Hello World";for (int i = 0; i < str.length(); i++) {std::cout << str[i] << std::endl;}return 0;
}
2. 迭代器遍历
#include <iostream>
#include <string>int main() {std::string str = "Hello World";for (std::string::iterator it = str.begin(); it != str.end(); ++it) {std::cout << *it << std::endl;}return 0;
}
3. 使用 range for 循环遍历字符串(需要 C++11 或更新的版本)
#include <iostream>
#include <string>int main() {std::string str = "Hello World";for (char c : str) {std::cout << c << std::endl;}return 0;
}
string 常用方法
判断字符串是否为空串
s.empty( )
判断字符串是否为空串
获取字符串中字符个数
s.size( )
获取字符串中字符个数s.length( )
获取字符串中字符个数
两种方法并没有区别
// 在 s 的位置 0 之前插入 s2 的拷贝
s.insert(0, s2)
插入元素
s.insert(pos, args)
在 pos 之前插入 args 指定的字符
// 在 s 的位置 0 之前插入 s2 的拷贝
s.insert(0, s2)
删除元素
s.erase(pos, len)
删除从 pos 开始的 len 个字符。如果 len 省略,则删除 pos 开始的后面所有字符。返回一个指向 s 的引用
追加字符串
s.append(args)
将 args 追加到 s。返回一个指向 s 的引用。 args 必须是双引号字符串
替换字符串中指定字符
s.replace(range, args)
将 s 中范围为 range 内的字符替换为 args 指定的字符
#include <iostream>
#include <string>
using namespace std;
int main() { string s1 ="hello world!";// 从位置 3 开始,删除 6 个字符,并插入 "aaa".删除插入的字符数量不必相等s1.replace(3, 6, "aaa");cout << s1 << endl;return 0;
}输出: helaaald!
字符串翻转
s.reverse()
翻转字符串
#include <iostream>
#include <algorithm>
string s2 = "12345"; // 初始化一个字符串
reverse(s2.begin(), s2.end()); // 反转 string 定义的字符串 s2
cout << s2 << endl; // 输出 54321
返回可以直接打印的字符串
s.c_str()
返回一个正规的C字符串指针也就是char* 类型的指针
#include <iostream>
#include <string>int main()
{char* c;std::string a="1234";c = (char*)a.c_str();printf("c = %s \n", c);return 0;
}
处理string对象中的字符 ,针对某个字符的特性判断函数
C++标准库中 cctype
中的主要函数,该库主要是字符处理功能,这个头文件声明了一组函数来分类和变换单个字符。这个库中主要有两种函数:一类负责字符分类功能;一类负责字符转换功能。