您的位置:首页 > 编程语言 > C语言/C++

C++字符串string类型

2013-11-03 19:05 281 查看



字符串的创建方法

string s1("how are you");
string s2(s1,1,2) //源字符串,偏移量,计数量 ow
string s3="fine";
string s4=s1+"fine";//右边第一项必须为string
string s5(s1.begin()+1,s1.begin()+3); 用迭代器

字符串的其他操作

插入

s.insert(0,"how") ;插入位置,内容
s.append("you");
用"+"号

字符串用size()计算长度
字符串支持下标操作s[1]
替换

s.replace(7,4,"her");从什么位置开始;删除多少个;替换字符串

查询

string::pos当查询不到时,会返回这个值
int n=find("you",15);待查询的字符串,查询起始位置(默认为0)若查到"you"返回首次匹配的起始位置
int n=find_first_of("abcde")'依次查找每个字符,如果在abcde中,则返回字符位置,否则返回string::pos
int n=find_first_not_of("abcde")返回第一个与abcde都不匹配的元素位置
find_last_of与find_last_not_of与3,4相似
rfind从后往前查找

删除

erase s1.erase(s1.begin(),s1.begin()+3);两个迭代器参数.删除s1前三个字符
s1.erase(2);只有一个参数,删除位置2以后的所有元素(注意!)
s1.erase(2,3);删除从2开始的3个元素。起始位置,删除个数

比较

直接用>,<,==

转化和拆分

c_str() const char c*=s.c_str()当要用atoi系列函数时,需对string进行这样的转换 atoi(s.c_str);(string-->int)
用stringstream字符串流把int---->string方法:int n1=10;string s1;stringstream os1;os1<<n1;os1>>s1;
按空格分开的数据,可以用stringstream直接读取
按逗号或其他分隔的数据,可以getline(iss,str,',')第三个参数是分隔符
按逗号或其他分隔的数据,可以先replace把逗号转成空格再用stringstream读取

trim去前后空格的实现

s.erase(0,s.find_first_not_of(" "));s.erase(s.find_last_not_of(" ")+1);





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: