C++字符串string类型

来源:互联网 发布:excel数据有效性公式 编辑:程序博客网 时间:2024/05/29 04:38

  • 字符串的创建方法
    1. string s1("how are you");
    2. string s2(s1,1,2) //源字符串,偏移量,计数量 ow
    3. string s3="fine";
    4. string s4=s1+"fine";//右边第一项必须为string
    5. string s5(s1.begin()+1,s1.begin()+3); 用迭代器
  • 字符串的其他操作
    1. 插入 
      1. s.insert(0,"how") ;插入位置,内容
      2. s.append("you");
      3. 用"+"号
    2. 字符串用size()计算长度
    3. 字符串支持下标操作s[1]
    4. 替换
      1. s.replace(7,4,"her");从什么位置开始;删除多少个;替换字符串
    5. 查询
      1. string::pos当查询不到时,会返回这个值
      2. int n=find("you",15);待查询的字符串,查询起始位置(默认为0)若查到"you"返回首次匹配的起始位置
      3. int n=find_first_of("abcde")'依次查找每个字符,如果在abcde中,则返回字符位置,否则返回string::pos
      4. int n=find_first_not_of("abcde")返回第一个与abcde都不匹配的元素位置
      5. find_last_of与find_last_not_of与3,4相似
      6. rfind从后往前查找
    6. 删除
      • erase s1.erase(s1.begin(),s1.begin()+3);两个迭代器参数.删除s1前三个字符
      • s1.erase(2);只有一个参数,删除位置2以后的所有元素(注意!)
      • s1.erase(2,3);删除从2开始的3个元素。起始位置,删除个数
    7. 比较
      • 直接用>,<,==
  • 转化和拆分
    1. c_str()  const char c*=s.c_str()当要用atoi系列函数时,需对string进行这样的转换 atoi(s.c_str);(string-->int)
    2. 用stringstream字符串流把int---->string方法:int n1=10;string s1;stringstream os1;os1<<n1;os1>>s1;
    3. 按空格分开的数据,可以用stringstream直接读取
    4. 按逗号或其他分隔的数据,可以getline(iss,str,',')第三个参数是分隔符
    5. 按逗号或其他分隔的数据,可以先replace把逗号转成空格再用stringstream读取
  • trim去前后空格的实现
    • s.erase(0,s.find_first_not_of(" "));s.erase(s.find_last_not_of(" ")+1);




原创粉丝点击