C++ 字符串的操作函数

运算符

运算符 描述
+ += 连接字符串,+ 两侧至少有一个string变量
= 赋值
> < != == 比较字符串
<< >> 输入输出字符串

string的构造函数

常用构造函数(其中str均为字符串变量):

string str;
string s(str);		//定义字符串并初始化为str
string s(str, start);		//定义字符串s并初始化为str[start, str.end())
string s(str, start, end);		//定义字符串s并初始化为str[start, end)
string s(str.begin(), str.end());	//初始化s为str[str.begin, str.end())
string s(n, ch);	//定义s并初始化为由n个字符ch构成的字符串

举例:

string str = "0123456";
string s1(str, 2);	//s1 = "23456"
string s2(str, 2, 5);	//s2 = "234"
string s3(5, '0');	//s3 = "00000"


大小容量

str.size();			//返回str长度
str.length();		//返回str长度
str.empty();		//若str为空则返回true
str.capacity();		//返回字符串最多可存储的字符个数


查找功能

str.find(substr);		//在str中查找substr,返回匹配的下标
str.find(sunstr, index);	//从index向后查找substr,返回匹配的下标
str.find_first_of("apple");	//在str中查找"apple"中所有字符出现第一次出现的位置
str.find_first_of("apple", index);	//从index向后查找"apple"中所有字符出现第一次出现的位置

举例:

string s = "I like apple.";
cout << s.find("apple") << endl;	//7
cout << s.find("l") << endl;		//2,like中l的下标
cout << s.find("l", 3) << endl;		//10,apple中l的下标
cout << s.find("A");				//-1,表示查找不成功
cout << unsigned(s.find("A"));		//返回一个unsigned int常量s.npos


子串

str.substr(pos);		//返回字符串str[pos, str.size)
str.substr(pos, length); //从下标pos向后取长为length的字符串str[n, n+length)


插入、删除与替换

s.insert(pos, str);		//在s的pos下标处插入str
s.insert(pos, str, begin, end);	//在s的pos下标出插入str[begin, end)
s.insert(pos, n, ch);	//在pos处插入n个字符c

s.clear();			//清空字符串
s.erase(pos);		//清除pos以后的所有字符s[pos, )
s.erase(pos, n);	//从pos开始,向后删除n个字符

s.replace(m, n, str);	//将s[m, n)替换为str


字符串反转

字符串反转类似vector元素反转和数组反转

#include <algorithm>
reverse(s.begin(), s.end());	//将s.begin()和s.end()之间的内容反转
s = "apple";
reverse(s.begin(), s.end());	//得到 elppa

C++字符串流参考: stringstream 字符串流


完结 cheers ?

猜你喜欢

转载自blog.csdn.net/qq_41140138/article/details/100626246