C++ string
C++里处理文本,首选字符串string,如果你在网上看到了用char类型数组和指针的代码,虽然看着很厉害,但是何必呢。
string他很香!
创建字符串变量
创建字符串变量的方法有五个,这里只需要大家掌握下面三个:
string s1; //创建一个空字符串
string s3 = "World"; //给定内容创建
string s4(5, 'A'); //创建指定长度某个字符的字符串。"AAAAA"
字符串输入
cin
关于string类型的输入,cin的作用和其他类型一样,都是遇到空格或者换行结束输入。

getline
getline必须要掌握!!!
getline的作用是,输入一行字符串,包括这一行里的空格。遇到换行符结束一次输入。

cin和getline混用容易出问题
这种写法很容易出问题,所以一定要重视!
不信的话试试下面的代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2,s3;
cin>>s1;
getline(cin,s2);
getline(cin,s3);
cout<<"s1="<<s1<<endl;
cout<<"s2="<<s2<<endl;
cout<<"s3="<<s3;
return 0;
}
原因是

解决的办法有很多,这里推荐两种:
- 1、统一用getline
- 2、cin之后再加个getline,用来对第一行后面的换行做一次处理
字符串运算
字符串string支持加法运算和判断相等运算


字符串的大小比较
字符串的大小比较是按照从左向右字符的ASCII码来比较的。
| 字符串大小比较的例子 |
|---|
![]() |
![]() |
Are you understand?
读取字符串的一个字符
字符串可以直接当做字符数组来用。

获取字符串的长度
通过size()函数获取字符串的长度

遍历字符串
遍历字符串的原理和遍历数组的原理是一样的。通过循环变量 i 的变化依次读取每一个字符。

遍历字符串也是必须掌握的技能!!!
字符串的常用函数
下面的函数大家自己试一试
| 函数示例 | 作用说明 | 结果类型 |
|---|---|---|
| s.empty() | 获取字符串是否为空 | bool |
| s.front() | 获取首字符 | char |
| s.back() | 获取最后一个字符 | char |
| s.append("world") | 在最后追加字符串,跟+=作用类似 | string |
| s.insert(5,"world") | 在下标5的位置插入指定的字符串。注意原来下标5位置及后面的字符串会往后挪 | string |
| s.erase(5, 3) | 从下标5的位置开始,删除3个字符。如果长度不够或者不给长度,就删除到末尾 | string |
| s.replace(6,5,"C++") | 从下标6的位置开始的5个连续的字符串,替换成后面的字符串 | string |
| s.substr(7, 3) | 提取从下标7开始3个连续字符的子串。注意原字符串不变 | string |
| s.find("abc") | 从左开始,查找abc第一次出现的下标位置。如果没找到,结果就是string::npos | 整数 |
| s.rfind("abc") | 从右开始,查找abc第一次出现的下标位置。如果没找到,结果就是string::npos | 整数 |
string和其他类型的转换
把string类型转换成整数

把string类型转换成小数

把string和char字符串转换

这个功能用在有些函数需要传递char字符串的情况。raylib里这种函数非常常见




浙公网安备 33010602011771号