c++中string怎么赋值给char数组

   2025-02-15 3870
核心提示:要将一个C++的string赋值给一个char数组,可以使用string的成员函数c_str()来获取一个指向字符数组的指针,并将其赋值给char数组

要将一个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’,以表示字符串的结束。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言