永远相信,美好的事情即将发生!
文章目录
- 1. 比较操作
- 1.1 比较方式
- 1.2 函数原型
- 1.3 代码展示
- 2. 字符读写
- 2.1 字符读入/访问
- 2.1.1 方式
- 2.1.2 代码展示
- 2.2 修改字符
- 2.2.1 方式
- 2.2.2 代码展示
- 3. 插入和删除
- 3.1 函数原型
- 3.2 代码展示
- 4. 截取子串(比较实用!!!)
- 4.1 函数原型
- 4.2 代码展示
- 5. 珍惜每一份相遇,感谢一路陪伴的你们💗
1. 比较操作
1.1 比较方式
- 比较字符串的ASCII码进行对比
- 左=右 返回0
- 左>右 返回1
- 左<右 返回-1
1.2 函数原型
int compare(const string &s) const;
与字符串s比较int compare(const char*s) const;
与字符串s比较
1.3 代码展示
-
左=右时
-
左>右时
-
左<右时
-
代码
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
void text01() {
//字符串的比较(类似于C里的strcmp()函数)
string s1 = "hello";
string s2 = "helpo";
if (s1.compare(s2) == 0) {
cout << "s1=s2" << endl;
}
else if (s1.compare(s2) > 0) {
cout << "s1>s2" << endl;
}
else {
cout << "s1<s2" << endl;
}
}
int main() {
text01();
return 0;
}
2. 字符读写
2.1 字符读入/访问
2.1.1 方式
- 通过
[]
下标访问 - 通过
.at()
访问
2.1.2 代码展示
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
//字符串的存取
//访问修改单个字符
void text01() {
//法①:通过 [] 访问单个字符
string s1 = "hello";
int len = s1.size();
for (int i = 0; i < len; i++) {
cout << s1[i] << " ";
}
cout << endl;
//法②:通过at方式访问单个字符
for (int i = 0; i < len; i++) {
cout << s1.at(i) << " ";
}
cout << endl;
}
int main() {
text01();
return 0;
}
2.2 修改字符
2.2.1 方式
- 使用下标
[]
直接修改 - 使用
.at()
进行修改
2.2.2 代码展示
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
//字符串的存取
//修改单个字符
void text02() {
//法①:通过[]来修改
string s1 = "hello";
s1[0] = 'p';
cout << s1 << endl;
//法②:通过s1.at()来修改
s1.at(1) = 'q';
cout << s1 << endl;
}
int main() {
//text01();
text02();
return 0;
}
3. 插入和删除
3.1 函数原型
string& insert(int pos, const char*s)
插入字符串string& insert(int pos, const string& str);
插入字符串string& insert(int pos, int n, char c);
在指定位置插入n个字符cstring& erase(int pos,int n = npos);
从pos开始删除n个字符
3.2 代码展示
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
//插入操作
void text01() {
string s1 = "hello";
s1.insert(1, "123");
//从下标为1开始,插入"123"
cout << s1 << endl;
}
void text02() {
string s1 = "h123ello";
s1.erase(1, 3);
//从坐标为1开始,删除3个字符
cout << s1 << endl;
}
int main() {
text01();
text02();
return 0;
}
4. 截取子串(比较实用!!!)
4.1 函数原型
string substr(int pos=0, int n = npos) const;
返回由pos开始的n个字符组成的字符串
4.2 代码展示
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
//求子串
void text01() {
string str = "hello";
string subStr = str.substr(1, 3);
cout << subStr << endl;
}
void text02() {
string email = "zhangsan@awa.com";
//从邮件地址获取用户名信息【即@前的名字】
//思路:截取"@"前的字符串
int pos = email.find("@"); //pos结果为@的下标
string username = email.substr(0, pos - 1);
cout << username << endl;
}
int main() {
text01();
text02();
return 0;
}
5. 珍惜每一份相遇,感谢一路陪伴的你们💗
string的故事到这里就讲完了,让我们相约在vector容器、deque容器叭!