溫馨提示×

c++中string怎么賦值給char數組

c++
小億
844
2023-11-14 11:36:16
欄目: 編程語言

要將一個C++的string賦值給一個char數組,可以使用string的成員函數c_str()來獲取一個指向字符數組的指針,并將其賦值給char數組。

下面是一個示例代碼:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, world!";
    char arr[20];

    // 使用c_str()函數將string賦值給char數組
    std::strcpy(arr, str.c_str());

    std::cout << arr << std::endl;

    return 0;
}

這段代碼將string對象str賦值為"Hello, world!",然后使用c_str()函數將str轉換為一個const char*類型的指針,然后使用strcpy()函數將c_str()函數返回的指針所指向的字符串復制到char數組arr中。最后,輸出arr的內容。

注意,char數組的長度應該足夠大以容納string對象的內容和空字符’\0’。不過,在C++11中,也可以使用string的成員函數copy()來將string復制到char數組中,這樣可以避免緩沖區溢出的風險。示例如下:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, world!";
    char arr[20];

    // 使用copy()函數將string賦值給char數組
    str.copy(arr, sizeof(arr));

    // 將最后一個字符設置為'\0',以表示字符串的結束
    arr[str.size()] = '\0';

    std::cout << arr << std::endl;

    return 0;
}

這段代碼和前面的示例相似,但使用了string的成員函數copy()來避免緩沖區溢出的風險。在調用copy()函數之后,需要手動將最后一個字符設置為’\0’,以表示字符串的結束。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女