C++中char*與string轉換

(1)char*轉換爲string:直接賦值即可

    char a[1024]="abcdefg";
    string mm=a;

(2)求char*(不包含\0)以及string的長度:strlen()函數

cout<<"a.size:"<<strlen(a)<<endl;

(3) string轉化爲char*
參考文獻

注意:一定要使用strcpy()函數 等來操作方法c_str()返回的指針

比如:最好不要這樣:
char* c;
string s=“1234”;
c = s.c_str(); //c最後指向的內容是垃圾,因爲s對象被析構,其內容被處理

應該這樣用:
string s=“12345”;//本質是"12345\0"
char c[6];//注意:這裏如果是用c[5]的話,會出現內存問題,最少是string.size()+1,
strcpy(c,s.c_str());

注意:strcpy現在可能會用不了,比如visual studio 2015,可以用strcpy_s
完整代碼

int main()
{
    char a[1024]="abcdefg";
    string mm=a;
    cout<<"a.size: "<<strlen(a)<<endl;

    char b[1024];
    strcpy(b,mm.c_str());

    printf("b is %s\n",b);
    cout<<"b.size: "<<strlen(b)<<endl;
}

執行結果

a.size: 7
b is abcdefg
b.size: 7

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