字符数组是以‘\0’结尾的,所以在字符数组赋值给字符串时会多出来一个’\0’。
char a[]="mynameis"
string b=a;
cout<<b<<endl;
此时输出结果应为mynameis,然而输出结果为mynameis口(空字符标志打不出来);
所以用字符数组给string赋值时要用assign()
char a[]="mynameis"
string b;
a.assign(y,y+strlen(y)-1) //strlen会计算空字符的。
cout<<b<<endl;
字符串赋值给字符数组用循环解决。
string x;
char y[100];
for(int i=1;i<x.size();i++)
{
y[i]=x[i];
}
字符串的操作
若string a="mynameis"
此时可以对a[0,a.size() ) 内的元素操作。
若定义 string a;
而a无值对a的操作是无意义的。