一、 初始化
string s1="i love you"; string s2(s1); //把s2初始化为string s1,注意不能写成string s2; s2(s1); string s3("value"); //将s3初始化一个c类型的字符串 string s4(6,'s'); //将s4初始化为6个字符‘s' /*注意字符串面值与标准库string不是同一个类型*/ cout<<s1<<endl; cout<<s2<<endl; cout<<s3<<endl; cout<<s4<<endl;
二、输入
string s6; getline(cin,s6);//输入带有空格的字符串,测试“ hello world ” cout<<s6<<endl;
cout<<"------------------------------"<<endl; string s5; cin>>s5;//输入不带空格的字符串 “ hello world ”测试,发现只读取有效字符到遇到空格结束 cout<<s5<<endl; //故意把s5和s6倒过来,如果先用cin输入s5,再用getline(cin,s6)会有问题。
三、访问字符
cout<<s1.at(13)<<endl;//at函数提供范围检查,当越界时会抛出out_of_range异常, cout<<s1[13]<<endl;//下标运算符[]不提供检查访问。
四、特性描述
1.判断是否为空
s1.empty()
2.长度
string s1="12345678";
cout<<s1.length()<<endl;//.length()和.size()没区别,用哪个都行
cout<<s1.size()<<endl;//size()代表它是个容器,length()体现它是字符串
3.重新定义它的长度(多去少补)
string s1="12345678"; cout<<s1<<endl; cout<<s1.size()<<endl;//.length()和.size()没区别,用哪个都行 s1.resize(4);//多去 cout<<s1<<endl; cout<<s1.size()<<endl; s1.resize(6,'x');//少补,不写第二个参数也可以 cout<<s1<<endl; cout<<s1.size()<<endl;
五、赋值
string s1="12345678"; string s3="1234567"; char s2[10]="12345"; cout<<s1<<endl; s1="aaa"; cout<<s1<<endl; s1.assign(s3);//assign里可以是c类型的字符串,也可以是string字符串 cout<<s1<<endl; s1.assign(s2,3);//前n个字符赋值,这种第一个参数只能是c类型的字符串 cout<<s1<<endl; s1.assign(3,'c');//n个字符赋给当前字符串 cout<<s1<<endl; s1.assign(s3,2,3);//把字符串(可以是c类型的也可以是string)中从start开始的n个字符赋给当前字符串 cout<<s1<<endl;
六、连接
string s1="12345678"; string s3="1234567"; char s2[10]="12345"; cout<<s1<<endl; s1+=s3; cout<<s1<<endl; s1.append("bb");//里面可以是c类型的字符串,也可以是string cout<<s1<<endl; s1.append(s3,2,3);//把字符串s3中从2的3个字符连接到当前字符串的结尾,也可以是c类型的字符串 cout<<s1<<endl; s1.append(3,'c');//把n个字符连接到当前字符串后 cout<<s1<<endl; s1="aaa",s3="bbb"; string s4=s1+s3; cout<<s4<<endl;
六、比较
string s1="aaa"; string s2="aaa"; string s3="bbb"; if(s1==s2) cout<<"相等"<<endl; else cout<<"不相等"<<endl; if(s1==s3) cout<<"相等"<<endl; else cout<<"不相等"<<endl; //另外,运算符">","<",">=","<=","!="均被重载用于字符串的比较 if(s1>s3) cout<<"s1>s3"<<endl; else cout<<"s1<s3"<<endl; cout<<s3.compare(s1)<<s1.compare(s3)<<s1.compare(s1)<<endl;//比较s1和s3的大小,小于返还-1,大于返还1,等于返回0
七、子串
string s1="12345678"; string s2=s1.substr(2,3);//返回2开始的3个字符组成的字符串 cout<<s2<<endl;
八、交换
string s1="12345678"; string s2="abcd"; s1.swap(s2); cout<<s1<<endl; cout<<s2<<endl;
xxxxxxxxxxxx
主要参考 还没有写完
http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html
http://blog.csdn.net/y990041769/article/details/8763366