c++ string类基本操作

时间:2019-02-16
本文章向大家介绍c++ string类基本操作,主要包括c++ string类基本操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 

string类的增删改查比分转     常用最基本操作

 

1、创建和插入

  • 创建  string s="study hard and make progress everyday! every day!!
  • 插入    s2.insert(positon, string);//插入位置(0开始), 插入字符串s3.append(string, startPosition,endPosition);//尾部插入字符串,被插入字符串的起始和终止位置,后两个参数可以省略

 

2、删除

  • 子串删除    s.erase(3,3);//删除起始位置,删除子串长度
  • 子串截取    s.substr(0,5);  //截取起始位置,截取子串长度

3、查找

  • 索引查找   s[0];
  • 根据字符串查找  s3 = "AAABBBAAABBB";
  1. 查找首个   int a = s3.find_first_of("BBB");//返回第一个字符串第一个字母位置 a=3   
  2. 查找最后一个  int b = s3.find_last_of("BBB");//返回最后一个 字符串
  3. 最后一个字母位置 b=11   从某处开始查找  int c1 = s3.find("BBB",0);// c1 = 3

                                                          int  c2 = s3.find("BBB",5);// c2 = 9

  • 查找所有  

   

 flag="a";
 position=0;
 int i=1;
 while((position=s.find(flag,position))!=string::npos)
 {
     cout<<"position  "<<i<<" : "<<position<<endl;
     position++;
     i++;
 }

4、替换

string line = "this@ is@ a test string!";  

line = line.replace(line.find("@"), 1, ""); //从第一个@位置替换第一个@为空    数字为第i个



string line = "this@ is@ a test string!";  

line = line.replace(line.begin(), line.begin()+6, "");  //用str替换从begin位置开始的6个字符  

5、比较

  • 特殊符号

           string::npos  查找时判断结束

           字符串为空  s.empty()   s.size() == 0    s==""

  • 字符串比较

           s.compare(s2); //相等返回0,s<s2返回-1,s>s2返回1

 

参考 https://blog.csdn.net/zcc1229936385/article/details/79747371

6、分割

void SplitString(const string& s, vector<string>& v, const string& c) //被分割字符串,返回数组,分割字符

{

    string::size_type pos1, pos2;

    pos2 = s.find(c);

    pos1 = 0;

    while(string::npos != pos2)

    {

        v.push_back(s.substr(pos1, pos2-pos1));

         

        pos1 = pos2 + c.size();

        pos2 = s.find(c, pos1);

    }

    if(pos1 != s.length())

        v.push_back(s.substr(pos1));

}

参考 https://www.cnblogs.com/carsonzhu/p/5859552.html

7、类型转换

double dVal;

int iVal;

string str;

stringstream ss;

 

// string -> double

str = "123.456789";

ss << str;

ss >> dVal;

cout << "dVal: " << dVal << endl;

 

// string -> int

str = "654321";

ss.clear();

ss << str;

ss >> iVal;

cout << "iVal: " << iVal << endl;

参考 https://blog.csdn.net/hanjing_csdn/article/details/79922660