C++ STL string类型
2017-04-04 14:27
447 查看
要想使用标准C++中string类,必须要包含
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
或using namespace std;
1:string对象的定义和初始化以及读写
string s1; 默认构造函数,s1为空串
string s2(s1); 将s2初始化为s1的一个副本
string s3("hello"); 将s3初始化一个字符串面值副本
string s4(n,'c'); 将s4 初始化为字符'c'的n个副本
cin>>s5; 读取有效字符直到遇到空格
getline(cin,s6); 读取字符到遇到换行,空格可读入,直到‘\n’结束
getline(cin,s7,'a'); 一直到‘a’结束,其中任何字符包括'\n'都能够读入
2:string对象操作
s.empty() 判断是否为空,bool型
s.size() 或 s.length() 返回字符的个数
s
返回位置为n的字符,从0开始计数
s1+s2 连接,看下面例子:
可用此方法给字符串后面添加字符如:s=s+'a';
a: string s2=s1+", "; //对,把一个string对象和一个字符面值连接起来是允许的
b: string s4="hello "+", "; //错,不能将两个字符串面值相加
c: string s5=s1+", "+"world"; //对,前面两个相加相当于一个string对象;
d: string s6="hello" + ", " + s2; //错
(注:字符串尾部追加还可用s.append("abc")函数添加)
s1=s2 替换
s1==s2 相等,返回true或false
!=,<,<=,>,>= 字符串比较,两个字符串短的与长的前面匹配,短的小于长的
k = s.find(s1); //s1为string类型,k为int类型,表示下标
s.erase(k,s1.size()); //从k处删除长度为s1.size()的元素 及删除s1
s.insert(k,s2); //在k处插入s2 string s13,s14,s15;
s13 = "hello "; s14 = "world";
s15 = s13+s14;
cout<<s13<<endl<<s14<<endl<<s15<<endl;
int k = s15.find("world");
s15.erase(k,sizeof("world")-1);
s15.insert(k,"James");
cout<<s15;
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
或using namespace std;
1:string对象的定义和初始化以及读写
string s1; 默认构造函数,s1为空串
string s2(s1); 将s2初始化为s1的一个副本
string s3("hello"); 将s3初始化一个字符串面值副本
string s4(n,'c'); 将s4 初始化为字符'c'的n个副本
cin>>s5; 读取有效字符直到遇到空格
getline(cin,s6); 读取字符到遇到换行,空格可读入,直到‘\n’结束
getline(cin,s7,'a'); 一直到‘a’结束,其中任何字符包括'\n'都能够读入
#include<iostream> using namespace std; //getline(cin,str);处理后还留有结束符在输入流中,故需要使用cin.get(); //接受最后一个结束符,才能接受后面得输入值。 int main() { string s1,s2("hello"),s3(10,'c'),s4,s5,s6; cin>>s4; cin.get(); getline(cin,s5); cin.get(); getline(cin,s6,'a'); cout<<s1<<endl; cout<<s2<<endl; cout<<s3<<endl; cout<<s4<<endl; cout<<s5<<endl; cout<<s6<<endl; }
2:string对象操作
s.empty() 判断是否为空,bool型
s.size() 或 s.length() 返回字符的个数
s
返回位置为n的字符,从0开始计数
s1+s2 连接,看下面例子:
可用此方法给字符串后面添加字符如:s=s+'a';
a: string s2=s1+", "; //对,把一个string对象和一个字符面值连接起来是允许的
b: string s4="hello "+", "; //错,不能将两个字符串面值相加
c: string s5=s1+", "+"world"; //对,前面两个相加相当于一个string对象;
d: string s6="hello" + ", " + s2; //错
(注:字符串尾部追加还可用s.append("abc")函数添加)
s1=s2 替换
s1==s2 相等,返回true或false
!=,<,<=,>,>= 字符串比较,两个字符串短的与长的前面匹配,短的小于长的
string s7("hello world!"),s8("dear"); cout<<s7<<endl<<s8<<endl; cout<<s7.empty()<<endl;//空返回1 cout<<s7.size()<<endl;//不包括'\0' cout<<s7[0]<<endl; cout<<s7<<endl; cout<<(s7==s8)<<endl; cout<<s7+s8<<endl;
k = s.find(s1); //s1为string类型,k为int类型,表示下标
s.erase(k,s1.size()); //从k处删除长度为s1.size()的元素 及删除s1
s.insert(k,s2); //在k处插入s2 string s13,s14,s15;
s13 = "hello "; s14 = "world";
s15 = s13+s14;
cout<<s13<<endl<<s14<<endl<<s15<<endl;
int k = s15.find("world");
s15.erase(k,sizeof("world")-1);
s15.insert(k,"James");
cout<<s15;
相关文章推荐
- 【语法回顾】C++STL:string类型 - ATP_ - 博客园
- C++(13)STL实践与分析之再谈String类型
- 【语法回顾】C++STL:string类型
- C++学习笔记(六):复杂数据类型(string、容器和STL)
- 【转帖】浅谈C++的string类型
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- C++中 替换string类型字符串中汉字的问题
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- C++ int,char,string,CString类型转换 [转]
- C风格字符串和C++的标准库类型string的比较
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- C/C++字符串处理(3):String ADT - 字符串只是抽象数据类型
- C++ 任意类型 转 string
- 用标准C++进行string与各种内置类型数据之间的转换
- C++ int类型和string类型的相互转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- c++数据类型--string
- Power up C++ with STL: Part II (string, set, map)
- C++ int,char,string,CString类型转换 [转]
- C++ int,char,string,CString类型转换 [转]