看了The C++ Programming Language的第二十二章 串,记一下笔记:)
c++之父给出的关于string的忠告
1:尽量使用string操作,少用c风格字符串函数
2:用string作为变量或者成员,不作为基类
3:你可以将string作为参数值或者返回值,让系统去关心存储管理问题
4:当你希望做范围检查时,请用at()而不是迭代器或者[]
5:当你希望优化速度时,请用迭代器或[]而不是at()
6:直接或者间接地使用substr()去读子串,用replace()去写子串
7:用find()操作在string里确定值的位置(而不是写一个显式的循环)
8:在你需要高效率地添加字符时,请在string的后面附加
9:在没有极端时间要求情况下用string作为字符输入的目标
10:用string::npos表示”string的剩余部分“
11:如果必要,就采用低级操作去实现极度频繁使用的string(而不是到处用低级数据结构)
12:如果你使用string,请在某些地方捕捉length_error和out_of_range异常
13:小心,不要将带值0的char*传递给字符串函数
14:只是到必要做的时候,再用c_str()产生string的c风格表示
15:当你需要知道字符的类别时,用isalpha(),isdigit()等函数,不要自己去写对字符值的检测
关于string的常用函数
假设有声明 string s;string s1;
1.求长度 s.length()或者s.size()
2.c++风格字符串转换为c风格,s.c_str()
如果不能立刻用完,不应该留在c_str()内,应该复制出去
3.按字典顺序比较字符串 s.compare(s1)
也可以与子串比较 s.compare(pos,n,s1) //s中从pos开始的n个字符与s1做比较
4.插入与拼接 插入会频繁的移动字符,一般都是在加在尾部,拼接用+就可以了:)
5.查找与替换 s.find(s1)
查找函数有非常多的变种,用到再查吧……
s.replace(pos,n,s1)
替换与被替换的部分数目可以不同,一般都与查找配合使用
用substr去读,用replace去写
6.格式化写入变量(需要包含头文件sstream)
string s="123";
int n=0;
stringstream stm;
stm<<s;
stm>>n; //更多的例子,猛戳这里
c++中string的常用方法
最新推荐文章于 2024-08-09 16:31:08 发布