C++中的string类是一种模板类,它可以用来存储和处理字符串。它提供了一些有用的函数,可以帮助我们更加方便地处理字符串。
1. 定义和初始化string类
#includeusing namespace std; string str1; // 定义一个空字符串 string str2 = "hello"; // 定义一个字符串,并赋值 string str3(str2); // 通过str2构造str3 string str4(str2, 3); // 通过str2的前3个字符构造str4 string str5(5, 'a'); // 通过5个'a'构造str5
2. 访问string类的字符
// 访问字符串的第一个字符 char c = str2[0]; // 访问字符串的一个字符 char c = str2.back(); // 访问字符串的长度 int len = str2.length();
3. 比较string类
// 比较两个字符串是否相等 bool result = str1 == str2; // 比较两个字符串是否不等 bool result = str1 != str2; // 比较两个字符串的字典序 int result = str1.compare(str2);
4. 查找string类
// 查找字符串中是否存在某个字符 int index = str1.find('a'); // 查找字符串中是否存在某个子串 int index = str1.find("abc"); // 查找字符串中是否存在某个字符,从右边开始 int index = str1.rfind('a'); // 查找字符串中是否存在某个子串,从右边开始 int index = str1.rfind("abc");
5. 修改string类
// 清空字符串 str1.clear(); // 替换字符串中的某个字符 str1.replace(0, 1, "b"); // 替换字符串中的某个子串 str1.replace(0, 3, "abc"); // 在字符串中插入某个字符 str1.insert(0, "a"); // 在字符串中插入某个子串 str1.insert(0, "abc"); // 删除字符串中的某个字符 str1.erase(0, 1); // 删除字符串中的某个子串 str1.erase(0, 3); // 添加字符串 str1 += str2;
6. 字符串连接
// 使用+连接字符串 string str = str1 + str2; // 使用+=连接字符串 str1 += str2; // 使用append连接字符串 str1.append(str2);
7. 字符串分割
// 使用find函数分割字符串 int pos = str1.find(" "); string str3 = str1.substr(0, pos); string str4 = str1.substr(pos + 1); // 使用find_first_of函数分割字符串 int pos = str1.find_first_of(" ,;"); string str3 = str1.substr(0, pos); string str4 = str1.substr(pos + 1); // 使用find_first_not_of函数分割字符串 int pos = str1.find_first_not_of(" ,;"); string str3 = str1.substr(0, pos); string str4 = str1.substr(pos);
8. 字符串转换
// 将字符串转换为整数 int num = atoi(str.c_str()); // 将字符串转换为浮点数 double num = atof(str.c_str()); // 将整数转换为字符串 string str = to_string(num); // 将浮点数转换为字符串 string str = to_string(num);