Last active
November 9, 2015 05:49
-
-
Save LincolnBurrows/eef5b2d0728251f77fdc to your computer and use it in GitHub Desktop.
c++ stl string
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
定义初始化: | |
#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