『C++』字符串后面空字符的问题(char*与string的转换)

字符数组是以‘\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的操作是无意义的。



写在最后:
我叫风骨散人,名字的意思是我多想可以不低头的自由生活,可现实却不是这样。家境贫寒,总得向这个世界低头,所以我一直在奋斗,想改变我的命运给亲人好的生活,希望同样被生活绑架的你可以通过自己的努力改变现状,深知成年人的世界里没有容易二字。目前是一名在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!😘你的点赞、收藏、关注是对我最大的鼓励!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章