55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
|
// 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;
|
|||
|
}
|