天天看點

C++: char* 與 string類型轉換C++: char* 與 string類型轉換

C++: char* 與 string類型轉換

标簽:C++ char* string 類型轉換

by 小威威

char*屬于

<cstring>

,string屬于

<string>

要實作二者的轉換,并不全是簡簡單單暴力指派,而是有特殊的方法。下面我将分别介紹char*類型轉化為string類型與string類型轉化為char*類型。

1.char*轉化為string:

法一:直接指派法(最為簡便)。

char* cstr;
string* sstr;
sstr = cstr;
           

法二:累加法(此處沒有法一簡便,但是string轉化為char*用這種思路更為簡便)。

for (int i = ; cstr[i] != '\0'; i++) {
    sstr += cstr[i];
}
           

string類型的字元串可通過累加的方式來添加字元的内容。

2.string 轉化為 char*:

法一:循環指派法(最為簡便)。

for (int i =  ; i < strlen(cstr); i++) {
    sstr[i] = cstr[i];
}
           

法二:c_str函數法:

string sstr;
    char *cstr1;
    const char *cstr2;
    cstr2 = sstr.c_str();
    int len1, len2;
    len1 = strlen(cstr1);
    len2 = strlen(cstr2);
    memcpy(cstr1, cstr2, (len1 > len2 ? len1 : len2));
           

因為c_str()函數傳回的是const char*類型,是以必須要重新定義一個const char* 的字元串來接受c_str的傳回值。然後再通過memcpy将const char*類型的字元串複制到char*類型的字元串。

以上内容皆為本人觀點,歡迎大家提出批評和指導,我們一起探讨!