中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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

c++
小億
472
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
秦皇岛市| 伊金霍洛旗| 南涧| 陇南市| 基隆市| 工布江达县| 辉南县| 襄汾县| 怀远县| 湟源县| 舟山市| 贵南县| 长子县| 龙川县| 大名县| 彭泽县| 遵义县| 邮箱| 峡江县| 格尔木市| 古丈县| 岐山县| 宽甸| 德清县| 岑溪市| 礼泉县| 吐鲁番市| 花莲县| 称多县| 那坡县| 通江县| 绵阳市| 同德县| 大英县| 衡阳县| 滁州市| 台北县| 扶绥县| 丹东市| 洛川县| 义乌市|