运算符
运算符 | 描述 |
---|---|
+ += | 连接字符串,+ 两侧至少有一个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 ?