C++ STL(三)string容器
4. string容器
构造函数
//默认构造
string s1;
// 使用字符串str初始化
const char* str = "hello world";
string s2(str);
// 使用一个string对象初始化另一个string对象
const char* str2 = "666";
string s3(str2);
// 使用n个字符c初始化
string s4(10, 'a');
string赋值操作
// char* 类型的字符串赋值给当前的字符串
string str;
str = "hello world";
// 把字符串str赋值给当前的字符串
string str1;
str1 = str;
// 把字符赋值给当前的字符串
str1 = 'A';
//*****************使用string类的成员函数assign
// 把字符串 赋值给当前的字符串
string str4;
str4.assign("hello C++");
// 把字符串的前5个字符赋值给当前字符串
string str5;
str5.assign("hello C++", 5);
// 把字符串str5赋值给当前字符串
string str6;
str6.assign(str5);
// 把20个m赋值给str7
string str7;
str7.assign(20, 'm');
string字符串拼接
// 使用+
string str1 = "我";
str1 += "爱玩游戏";
str1 += 'A';
string str2 = "爱玩手机";
str1 += str2;
cout << str1 << endl;
// 使用append
string str3 = "I";
string str4 = "666";
// 把字符串连接到当前字符串尾部
str3.append("Love");
// 把字符串的前3个连接到当前字符串的尾部
str3.append("12345", 3);
// 把str4 追加到当前字符串的尾部
str3.append(str4);
string str5 = "111";
// 把str4从第0个到第2个字符 追加到str5
str5.append(str4, 0,2);
cout << str5;
string字符串查找和替换
// 查找指定字符串在str中的起始位置
string str1 = "abcdefg";
int pos = str1.find("de");
if (pos == -1)
{
cout << "未找到字符串" << endl;
}
else
{
cout << "找到字符串pos = " << pos << endl;
}
// find 从左往右查找
// rfind从右往左查找
// ************字符串替换
// 从0到2的位置替换成aaaaaa
string str2 = "123456";
str2.replace(0, 2, "aaaaaa");
string字符串比较
-
是按字符串的ASCII码进行对比
- = 返回0
- > 返回1
- < 返回-1
string str1 = "hello"; string str2 = "hello"; if (str1.compare(str2) == 0) { cout << "两个字符串相等" << endl; } else { cout << "两个字符串不相等" << endl; }
string字符存取
string str = "hello";
// 1.通过[]访问单个字符
for (int i = 0; i < str.size(); i++)
{
cout << str[i] << " ";
}
// 2.通过at访问单个字符
for (int i = 0; i < str.size(); i++)
{
cout << str.at(i) << " ";
}
// 3.修改单个字符
str[0] = 'm';
str.at(1) = 'x';
cout << str << endl;
string字符串插入和删除
string str = "hello";
// 从第1个位置插入字符串
str.insert(1, "111");
// 从第1个位置删除3个
str.erase(1, 3);
cout << str;
string子串获取
- 功能:从字符串中获取想要的字符串
string str = "abcdef";
// 获取str从第一个到第三个
string subStr = str.substr(1, 3);
cout << subStr<< endl;
string email = "zhangsan@163.com";
// 从邮箱中获取用户名信息
int pos = email.find('@');
string usrname = email.substr(0, pos);
cout << usrname;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探