C++ string string string string string string string string string string
一、 初始化
string s1="i love you";
string s2(s1); //把s2初始化为string s1,注意不能写成string s2; s2(s1);
string s3("value"); //将s3初始化一个c类型的字符串
string s4(,'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()<<endl;//at函数提供范围检查,当越界时会抛出out_of_range异常,
cout<<s1[]<<endl;//下标运算符[]不提供检查访问。
四、特性描述
1.判断是否为空
s1.empty()
2.长度
string s1="";
cout<<s1.length()<<endl;//.length()和.size()没区别,用哪个都行
cout<<s1.size()<<endl;//size()代表它是个容器,length()体现它是字符串
3.重新定义它的长度(多去少补)
string s1="";
cout<<s1<<endl;
cout<<s1.size()<<endl;//.length()和.size()没区别,用哪个都行
s1.resize();//多去
cout<<s1<<endl;
cout<<s1.size()<<endl;
s1.resize(,'x');//少补,不写第二个参数也可以
cout<<s1<<endl;
cout<<s1.size()<<endl;

五、赋值
string s1="";
string s3="";
char s2[]="";
cout<<s1<<endl;
s1="aaa";
cout<<s1<<endl;
s1.assign(s3);//assign里可以是c类型的字符串,也可以是string字符串
cout<<s1<<endl;
s1.assign(s2,);//前n个字符赋值,这种第一个参数只能是c类型的字符串
cout<<s1<<endl;
s1.assign(,'c');//n个字符赋给当前字符串
cout<<s1<<endl;
s1.assign(s3,,);//把字符串(可以是c类型的也可以是string)中从start开始的n个字符赋给当前字符串
cout<<s1<<endl;

六、连接
string s1="";
string s3="";
char s2[]="";
cout<<s1<<endl;
s1+=s3;
cout<<s1<<endl;
s1.append("bb");//里面可以是c类型的字符串,也可以是string
cout<<s1<<endl;
s1.append(s3,,);//把字符串s3中从2的3个字符连接到当前字符串的结尾,也可以是c类型的字符串
cout<<s1<<endl;
s1.append(,'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="";
string s2=s1.substr(,);//返回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
C++ string string string string string string string string string string的更多相关文章
- Java-集合-第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList(); l
第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; ...
- 第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList();
list.add(new Student("Tom", 18, 100, "class05")); list.add(new Student("Jer ...
- [BTS] Error biztalk arguments null exception string reference not set to an instance of a string. parameter name
biztalk arguments null exception string reference not set to an instance of a string. parameter name ...
- String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01. ...
- 已知有一个Worker 类如下: public class Worker { private int age; private String name; private double salary; public Worker (){} public Worker (String nam
package homework006; public class Worker { private int age; private String name; private double sala ...
- 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum
package homework003; import java.util.ArrayList; import java.util.List; public class Text { public s ...
- 第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum&
//Student package zuoye; public class Student { private String name; private int age; private int sc ...
- 将String转化成Stream,将Stream转换成String
using System;using System.IO;using System.Text;namespace CSharpConvertString2Stream{ class Progr ...
- getParameterMap()的返回值为Map<String, String[]>,从其中取得请求参数转为Map<String, String>的方法如下:
直接遍历报错:[Ljava.lang.String;@44739f3f Map<String, String> tempMap = new HashMap<String, Strin ...
- js中String.prototype.format類似于.net中的string.formitz效果
String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (argum ...
随机推荐
- bootstap 折叠
data-toggle="collapse" 添加到您想要展开或折叠的组件的链接上. href 或 data-target 属性添加到父组件,它的值是子组件的 id
- Python --写excel
# -*- coding: UTF-8 -*- import xlwt import StringIO # 将数据保存成excel def write_data(data, tname): file ...
- Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成"
在iOS上开发视频操作的时候,出现错误: 录制视频错误:Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成" Us ...
- Luogu【P3609】蹄子剪刀布(DP+滚动数组)
题目链接 (突然高兴 又一次瞬间想出转移方程并一遍A掉!!233333(虽然从二叉苹果树那题开始我就发现我的方程好像跟别人不大一样 (所以这样就可以名正言顺的水题解了 设f[i][j][k]表示考虑F ...
- BZOJ2425 [HAOI2010]计数 【数位dp】
题目 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数.比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. 现 ...
- 回顾基础知识,类,fbv,cbv
一 类中绑定方法的传参,不需要self class Foo(object): def __init__(self,name): self.name = name def foo(self,x): se ...
- NOJ1203 最多约数问题 [搜索 数论]
传送门 njczy2010 1203 Accepted 79MS 1400K 2321Byte G++ 2015-01-25 13:14:25.0 最多约数问题 时间限制(普通/Java) : 2 ...
- 使用 ftrace 调试 Linux 内核,第1部分
ftrace 是 Linux 内核中提供的一种调试工具.使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用.本系列文章对 ftrace 进行了介绍,分为三部分 ...
- P1576 最小花费 洛谷
https://www.luogu.org/problem/show?pid=1576 题目背景 题目描述 在n个人中,某些人的银行账号之间可以互相转账.这些人之间转账的手续费各不相同.给定这些人之间 ...
- T2038 香甜的黄油 codevs
http://codevs.cn/problem/2038/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 农夫John ...