美文网首页
C++ string 详解

C++ string 详解

作者: cb_guo | 来源:发表于2019-04-04 11:07 被阅读0次

最近做互联网笔试题发现,很多都考察到字符串,而字符串在 C++ 中主要是用 string 来实现的,所以来总结一下
参考 《C++ Primer》320页

string str = "apple banban";

  • 遍历
for(int i=0; i < str.size(); i++){
    cout<<str[i]<<" ";
}
  • 构造 string 的其他方法
string s1(str, 6);     // banban
string s2(str, 6, 3);  // ban
  • substr
string str2 = str.substr(3, 6);
cout<<str2;    // le ban

string str3 = str.substr(3);
cout<<str3;    // le banban

string str = "apple banban";

  • insert
string tt = "orange ";
string s1 = str;
cout<<s1.insert(6, tt);  // apple orange banban
cout<<endl;

string s2 = str;
cout<<s2.insert(6, tt, 2, 3);   // apple angbanban
  • erase
str.erase(3, 3);
cout<<str;   // appbanban

str.erase(str.begin() + 3);
cout<<str;   // appe banban

str.erase(str.begin() + 3, str.begin() + 6);
cout<<str;   // appbanban
  • append
str.append(" ttt");
cout<<str;  // apple banban ttt

str.append(" abcdef", 0, 3);
cout<<str;  // apple banban ab

string str = "apple banban";

  • replace
str.replace(3, 6, " 000 ");
cout<<str;    // app 000 ban

str.replace(3, 6, " 000 ", 1, 3);
cout<<str;    // app000ban

string 的搜索操作

// 搜索操作返回指定字符出现的下标,如果未找到则返回 npos
s.find(args)               // 查找 s 中 args 第一次出现的位置 
s.rfind(args)              // 查找 s 中 args 最后一次出现的位置
s.find_first_of(args)      // 在 s 中查找 args 中任何一个字符第一次出现为位置
s.find_last_of(args)       // 在 s 中查找 args 中任何一个字符最后一次出现为位置
s.find_first_not_of(args)  // 在 s 中查找第一个不在 args 中的字符
s.find_last_not_of(args)   // 在 s 中查找最后一个不在 args 中的字符

string str = "apple banban";
如果搜索失败,则返回一个名为 string::npos 的 static 成员。
标准库将 npos 定义为一个 const string::size_type 类型,初始化为 -1

  • find 函数完成最简单的搜索。它查找参数指定的字符串,若找到,则返回第一个匹配位置的下标,否则返回 npos
    搜索是大小写敏感的
int position = str.find("ban");
if(position != str.npos){
      cout<<"position is "<<position; // 6
}
else{
      cout << "not found!!! ";
}
string str = "Mississippi";
auto first_pos = str.find("is");  // 1
auto last_pos = str.rfind("is"); // 4
  • compare
string str1 = "123";
string str2 = "123";
cout<<str1.compare(str2); //0

string str1 = "abc";
string str2 = "bc";
cout<<str1.compare(str2); // -1

string str1 = "abcd";
string str2 = "abc";
cout<<str1.compare(str2); // 1
数值转换
stoi()      // 字符串转int  
stof()       // 字符串转 float
stol()       // 字符串转 long
to_string()  // 数值转字符串

参考

相关文章

网友评论

      本文标题:C++ string 详解

      本文链接:https://www.haomeiwen.com/subject/vtkfiqtx.html