qfedu-cpp-level/day9/stl_string_demo/d1.cpp

55 lines
1.2 KiB
C++
Raw Normal View History

// string 类型的常用方法
// string 与 char* 的区别
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s1("ism ");
string s2("hhhsishg");
// 拼接
// s1 += s2;
s1.append(s2);
/******************
// 修改指定位置的内容
s1[0] = 'l';
// 替换
// int c_pos = s1.find('h'); // 查找字符 h 的位置
// s1.replace(c_pos, 1, "d"); // 替换字符 h 为 d
// 替换所有的 h 为 d
int pos = s1.find('h');
cout << "h pos = " << pos << endl;
// while (pos != string::npos) // npos 表示查找失败
while (pos != -1) // -1 表示查找失败
{
s1.replace(pos, 1, "d");
pos = s1.find("h", pos + 1);
}
******************/
// 查找 is 第一次和最后一次出现的位置
int is_start = s1.find("is");
int is_end = s1.rfind("is");
cout << "is_start = " << is_start << endl;
cout << "is_end = " << is_end << endl;
// 查找 is 的长度
string s3("is");
cout << "is 的长度: " << s3.size() << endl;
// 清空内容(保留开始和结束的 is
// s1.replace(is_start, is_end - is_start + 2, "");
s1.erase(is_start + 2, is_end - is_start - 2);
cout << s1 << endl;
return 0;
}