C++ string string string string string string string string string string
2015-09-09 20:22
701 查看
一、 初始化
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909195841090-580746426.png)
二、输入
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909202103934-191672467.png)
三、访问字符
四、特性描述
1.判断是否为空
2.长度
3.重新定义它的长度(多去少补)
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909205639590-818515081.png)
五、赋值
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909212235809-792889172.png)
六、连接
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909213720262-843189445.png)
六、比较
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909214645403-176429444.png)
七、子串
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909215246059-596013465.png)
八、交换
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909215437450-2054835707.png)
xxxxxxxxxxxx
主要参考 还没有写完
http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html http://blog.csdn.net/y990041769/article/details/8763366
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;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909195841090-580746426.png)
二、输入
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)会有问题。
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909202103934-191672467.png)
三、访问字符
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;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909205639590-818515081.png)
五、赋值
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;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909212235809-792889172.png)
六、连接
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;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909213720262-843189445.png)
六、比较
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
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909214645403-176429444.png)
七、子串
string s1="12345678"; string s2=s1.substr(2,3);//返回2开始的3个字符组成的字符串 cout<<s2<<endl;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909215246059-596013465.png)
八、交换
string s1="12345678"; string s2="abcd"; s1.swap(s2); cout<<s1<<endl; cout<<s2<<endl;
![](http://images2015.cnblogs.com/blog/787857/201509/787857-20150909215437450-2054835707.png)
xxxxxxxxxxxx
主要参考 还没有写完
http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html http://blog.csdn.net/y990041769/article/details/8763366
相关文章推荐
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- C++函数调用之thiscall
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 项目11.1分离各位数
- C++用法的学习心得
- 最简单C语言的扫雷地图(不是游戏)
- C++用法及学习心得
- Ubuntu Eclipse for C++ 11
- 【C++学习笔记】const的用法
- 深入学习C++中的函数概念
- 求集合/字符串中的所有组合 (C语言)
- C++条件及循环语句的综合运用实例
- 重新认识二级指针(Pointers to Pointers)
- C++用法的学习心得
- 简单举例说明C++中break和continue语句的用法
- c++运算符重载
- C语言(11)--回文日、确定等式、fflush(stdin)、将十进制数转换成n进制数、二分法解方程
- C++ Coding Standard
- 全排列 (C语言实现)
- libtc++ lib