string常用操作

注意

str = str + ‘a’ 和 str += ‘a’的效率不一样,前面是返回对象,后面是引用。用前面超时过..

  • find rfind
    返回字符或字符串出现的下标,不存在返回string::npos
find(char c, int pos = 0)// 从pos(可省略)开始向后找第一个出现的字符或字符串,返回位置
rfind(char c, int pos = 0)  // 从pos(可省略)开始向前找第一个出现的字符或字符串,返回位置
  • erase
s.erase(int pos, int sum)   // 从pos删除sum个字符
  • size() length() 返回字符串的长度
  • append() 在字符串最后添加字符或字符串
  • insert()
s.insert(int pos, str)  //从pos插入字符串str
s.insert(int pos, str, int start, int sum)  // 在pos插入str字符串的第start开始的sum个
s.insert(int pos, str, int sum) // 在pos插入str的前sum个
s.insert(int pos, int sum, char c)  // 在pos插入sum个字符
  • replace() 替换字符串
str.replace(int pos,int sum,str2);  // 从pos的sum个字符串替换为str2
  • swap()
string a = "adfaf";
string b = "adsfadf";
a.swap(b) ==  swap(a, b);
  • substr() 返回子串
// 从pos返回sum个字符
string a = "asdadf";
cout << a.substr(int pos, int sum)
  • stringiostream可以用于不同类型的拼接
// stringiostream可以用于不同类型的拼接
char a[] = "qwer";
int n = 123;
stringstream ss;
ss << n << a <<12.32;
cout << ss.str() << endl;   //123qwer12.32
string t;
ss >> t;    //错误写法:t << ss; stringstream始终放在前面 
cout << t;  //123qwer12.32 从stringiostram中读取是以空格、回车分隔 
ss.str("");     //清空操作   
}

猜你喜欢

转载自blog.csdn.net/henuyh/article/details/80786621