string对象的操作:
size():用来获取字符串的长度。
输出字符串s的长度:
string s("hello world!\n");
cout<<"the size of '"<<s<<"' is"<<s.size()<<endl;
判断字符串是否为空的两种方式:
if(s.size()==0)
{
cout<<"s.size==0"<<endl;
}
if(s.empty())
{
cout<<"s.empty()"<<endl;
}
获得字符串长度:
int num=s.size(); 使用整形接收字符串长度可能会有问题,因为int变量的表示范围太小,有时不能存储string对象的长度。使用string::size_type类型可以满足要求,这种类型是unsigned的,这比signed类型要大一倍。事实上size()函数返回的也是 size_type 类型。
关系运算:
可以使用:s1==s2;s1>s2;s1<s2,来比较两个字符串。
赋值运算:
string snew="empty";
snew=s1;
上面代码首先初始化一个snew字符串,第二句将snew占用的内存释放掉,然后给snew足够存放s1副本的内存空间,最后把s1中所有的字符复制到新分配的内存空间。
字符串连接:
cout<<s1+"."<<endl; OK
cout<<"1"+s1<<endl; OK
cout<<s1+s2<<endl; OK
cout<<s1+s2+"."<<endl; OK
//cout<<"hello"+"jiajia"<<endl; ERROR
当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。
通过下标访问string对象:
string对象下标从0开始。
for(string::size_type ix=0;ix<s1.size();ix++)
{
s1[ix]+=ix;
}