C++基础字符串操作
头文件
#include <string>
初始化
点击查看代码
string s1;
string s2 = s1; // 拷贝初始化
string s3(s2); // 作用同上
string s4 = "hello world"; // 用 "hello world" 初始化 s4,除了最后的空字符外其他都拷贝到s4中
string s5("hello world"); // 作用同上
string s6(6,'a'); // 初始化s6为:aaaaaa
string s7(s6, 3); // s7 是从 s6 的下标 3 开始的字符拷贝
string s8(s6, pos, len); // s8 是从 s6 的下标 pos 开始的 len 个字符的拷贝
输入操作
cin >> str:遇到空格停止
getline(cin, str):遇到回车停止
本身属性
data():返回指向字符串内容的字符数组的指针,以'\0'结尾
c_str():在C++11之后,c_str()与data()功能完全相同
size():返回字符串的长度
length():与size()相同
empty():判断字符串是否为空
拼接和比较
点击查看代码
s1+s2 // 返回 s1 和 s2 拼接后的结果。加号两边至少有一个 string 对象,不能都是字面值
>, < // 按字典序比较,两个字符串中第一个不相同的字符
s1.compare(s2) //逐个比较 ASCII 码, 大于返回 1, 小于返回 -1,相同返回 0
查找和修改
s.find(args):查找 s 中 args 第一次出现的位置,如果找不到,则返回:string::npos
s1.replace(pos, n, s2):从 pos 开始的,长度为 n 的子串替换为 str
s.insert(pos, args):在 pos 之前插入 args 指定的字符
s.erase(pos, len):删除从 pos 开始的 len 个字符。如果 len 省略,则删除 pos 开始的后面所有字符
s.substr(pos, n):返回从pos开始,长度为n的子串
类型转换
处理 string 对象中的字符
isalpha(c):当 c 是字母时为真
isdigit(c):当 c 是数字时为真
tolower(c):大写转小写
toupper(c):小写转大写
string、char 型与数值的转换
string s = to_string(val):将数值 val 转换为 string
stoi(s, p, b):将s转换为 b 进制的int型数据,p为size_t指针,用来保存 s 中第一个非数值字符的下标(p,b可省略)
atoi(c):将c指向的字符,转换为int

浙公网安备 33010602011771号