C++11中string对象的操作

初始化string对象:

string s1; //默认初始化为空串
string s2(s1); //s2为s1的副本
string s3 = s1; //等价于s3(s1)
string s4("csdn");//s4为"csdn"的副本,但不包括c风格字符串末尾的'\0'
string s5 = "csdn";//等价于s5("csdn")
string s6(n,'c');//将s6初始化为n个连续的c组成的串,若n = 3,'c' = 'a',则s6为"aaa"

注意,使用等号的初始化方式s3 = s1为拷贝初始化,使用括号的为直接初始化

拷贝初始化为将初始值拷贝到新对象中,而直接初始化则是利用初始值使用该对象的的构造函数进行初始化

string对象的操作:

string s,s1,s2;
cout<<s; //输出s,将s写到输出流cout中,返回cout
cin>>s;  //从输入流cin中读取字符串赋给s,字符串以空格分隔,返回cin
getline(cin,s); //从cin中读取一行赋给s,区别于上一行的以空格分隔,返回cin
s.empty(); //r若s为空返回true,不为空返回false
s.size(); //返回s中字符的个数,如"csdn"返回4
s1+s2;//返回s1和s2连接的结果,如"Csdn"+"Best"则返回"CsdnBest"
s1==s2;//判断是否相等
s1!=s2;//判断是否不等
s[n];//访问下标为n的字符,类似于数组
>,<,<=,>= //利用字符在字典中的顺序比较

字面值与string对象相加:

加号两边至少要有一个string对象

string s1, s2, s3;
s3 = s1+"csdn"+s2;//正确
s3 = s1+"csdn"+"best";//错误,第二个加号两边都是字面值

使用迭代器访问string中的数组:

string s("csdn");
auto a = s.begin(),b = s.end();//a为指向s第一个字符的迭代器,b指向s最后一个字符的下一个位置,不可解引用
cout<<*a;//得到'c'
cout<<*(a+1);//a+1后移动到下一个字符,得到's'

for(auto i = s.begin();i != s.end();++i)
cout<<*=i<<" ";
//使用迭代器遍历s,得到c s d n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值