『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的操作是無意義的。



寫在最後:
我叫風骨散人,名字的意思是我多想可以不低頭的自由生活,可現實卻不是這樣。家境貧寒,總得向這個世界低頭,所以我一直在奮鬥,想改變我的命運給親人好的生活,希望同樣被生活綁架的你可以通過自己的努力改變現狀,深知成年人的世界裏沒有容易二字。目前是一名在校大學生,預計考研,熱愛編程,熱愛技術,喜歡分享,知識無界,希望我的分享可以幫到你!
如果有什麼想看的,可以私信我,如果在能力範圍內,我會發布相應的博文!
感謝大家的閱讀!😘你的點贊、收藏、關注是對我最大的鼓勵!

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