C++ 大大增强了对字符串的支持,除了可以使用C风格的字符串,
还可以使用内置的 string 类。
string 类处理起字符串来会方便很多
,完全可以代替C语言中的字符数组或字符串指针。
(1)string的创建
string s1;
string s2 = "123456789";
string s3 = s2;
string s4(5,'s');
(2)字符串的输入
1.cin >>
会过滤掉不可见字符(如 空格 回车,TAB 等)
2.cin.get()
cin.get(字符数组名,接收字符数目)用来接收一行字符,可以接收空格.
3.cin.getline()
cin.getline()实际上有三个参数,
cin.getline(接受字符串的名称m,接受个数5,结束字符)当第三个参数省略时,
系统默认为'\n'
4.getline()
接受一个字符串,可以接收空格并输出
(3)将字符串转换为数 O(1)
stoi stol stoul stoll stoull stof stod stold
int a = stoi(s2);
(4)获取字符串的长度 O(1)
s1.size();
(5)字符串的ASCII编码值:'A' - 'Z'为65 ~ 90,'a' - 'z'是97-122,'0' - '9' 是48-57;
(6)两个字符串相加O(1)
string s5 = s2 + s5;
string s5 = s2.append(s5);//在尾部追加
(7)字符串的截取 O(1)
string s6 = s5.substr(1,3)//第一个参数是字符串的索引开始,第二个是长度
(8)字符串的翻转O (n)
reverse(s2.begin(),s2.end());
(9)找到某个字符在字符串中第一次出现的索引 O (n)
int h = s2.find('1');
(10)字符串的替换O(1)
s2.replace(1,3,'b');
将s2的索引1-3之间所有字符替换为b
(11)字符串的插入
s4.insert(1,"wda");
(12)判断两个字符串是否相等
s1 == s2
s1.compare(s2);
(13)字符串的交换
swap(s4[1],s4[5])