这一篇博文对于很多人来说可能是基础知识,但对于一些人(包括我,及许多从Pascal转来的OIER)来说,C++字符串处理是比较麻烦的。鉴于此,我把它放在“字符串”这个专题里而不是“入门知识”。
麻烦主要是来源于C++字符串处理操作的多样性,有很多方法可以处理。另外,字符数组的操作也很容易和字符串的弄混。这里给出一些对于字符串比较简单的操作。
输入:
#include<iostream>
string s;
如要整行读入:getline(cin,s);
如要读入至空格或换行停止:cin>>s;
比如:
1 2 3
cin结果:1;getline结果:1 2 3;
输出:
#include<iostream>
string s="123";
cout<<s;
这个就没什么好说的了吧。。
*当然,输入输出也有scanf,printf的方法,但我感觉这种最为简便。
删除:
string s="123";
s.erase(1,1);
其实就是 字符串变量名.erase(删除的起始位置,删除长度) ,注意C++中字符串位置从0开始。
比如上述操作后s变为"13"。
替换:
string s="123";
s.replace(1,2,"sss");
格式:字符串变量名.replace(替换的起始位置,替换长度,替换的字符串);
可以理解为先删除后插入,如上述操作先删除从"2"开始的两个字符,即“23”,后插入“sss”,替换后s为"1sss"。
求长度:
string s="123";
int len=s.size();
格式:字符串变量名.size(),与上述操作不同,它返回一个具体的数值;
例如:上述操作后len==3,为s字符串的长度。
当然,上述这些操作不一定是最高效的,但我认为是相对简单易操作的。对于新手,或者说不想被搞混淆的同学来说,可以参考一下。