字符串後面空字符的問題(char*與string的轉換)

今天AC了不少題,困擾已久的Time limit error 也解決了,記住下次用STL容器的時候一定要清空容器。
其次是字符數組與字符串的淺談。
字符數組是以‘\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的操作是無意義的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章