Skip to content

Instantly share code, notes, and snippets.

@LincolnBurrows
Last active November 9, 2015 05:49
Show Gist options
  • Save LincolnBurrows/eef5b2d0728251f77fdc to your computer and use it in GitHub Desktop.
Save LincolnBurrows/eef5b2d0728251f77fdc to your computer and use it in GitHub Desktop.
c++ stl string
定义初始化:
#include<string>
string s1; //默认构造函数,s1为空串
string s2(s1);将s2初始化为s1的一个副本
string s3("value"); 将s3初始化一个字符串的值副本
string s3(n,'c');将s4初始化为字符'c'的n个副本
cin>>s5;读取有效字符直到遇到空格 'q'
getline(cin,s6); 读取字符到遇到换行,空格可读入,直到'\n'结束 ,'\n'被截取掉
getline(cin,s7,'a'); 一个直到'a'结束,其中任何字符包括'\n'都能够读入 '\a'被截取掉
输出: std::cout<<s1<<s2<<s3<<s4<<s5;
对象操作:
s.empty() 判断是否为空,bool类型
s.size()或s.length() 返回字符的个数,返回值并不是int类型,而是string::size_type,其所能存储的string长度是int所能存储的两倍。
s[n] 返回位置为n的字符,从0开始计数
连接操作:
string s1;
string s2;
s1+s2;
s2 = s1+",";
s2 = s1+","+"world";
字符串尾部追加 s.append("abc");
s1=s2;替换
s1==s2;是否相等,返回true/false
!=,<,<=,>,>= 字符串比较,两个字符串短的与长的前面匹配,短的小于长的。
while(!str1.empty()) //返回一个bool值,空的话返回true,否则返回false。
{
for(string::size_type i=0;i!=str1.size();++i) //注意size_type类型
{
cout<<str1[i];
}
cout<<endl;
break;
}
方法:
s.replace(3,3,"good"); //从第三个起连续三个替换为good
s.erase(3);删除第四个元素
s.erase(0,4);删除第一到第五个元素
s.find("cat");查找第一个出现的字符串"cat",返回其下标值,查不到返回 4294967295,也可查找字符;
s.compare("good");s与”good“比较相等返回0,比"good"大返回1,小则返回-1;
reverse(s.begin(),s.end());反向排序函数,即字符串反转函数
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment