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

posted @ 2023-08-07 14:31  work006  阅读(41)  评论(0)    收藏  举报