c++中string的常用方法

来源:互联网 发布:手机淘宝怎么抢购最快 编辑:程序博客网 时间:2024/06/10 23:01

看了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;  //更多的例子,猛戳这里

原创粉丝点击