📜  char * 转字符串 c++ (1)

📅  最后修改于: 2023-12-03 15:14:08.014000             🧑  作者: Mango

C++中char *转字符串

在C++中,char指针被广泛用于表示字符串。但是,有时候我们需要将char指针转换为字符串类型。本文将介绍如何在C++中实现char *转字符串的方法。

使用string构造函数

C++标准库中的string类提供了一种快捷的方法,可以使用string的构造函数将char指针转换为字符串。

const char* str = "Hello, World!";
std::string s(str);
使用string的assign函数

另一种方法是使用stringassign函数,该函数接受两个参数:要分配给字符串的字符序列和字符串的长度。我们可以使用strlen函数确定字符串的长度。

const char* str = "Hello, World!";
std::string s;
s.assign(str, strlen(str));
使用stringstream类

还可以使用stringstream类实现char *转字符串。stringstream是一个可以像文件一样访问字符串的类。

#include <sstream>

const char* str = "Hello, World!";
std::stringstream ss;
ss << str;
std::string s = ss.str();

需要注意,stringstream类的一个缺点是它比其他方法要慢得多。

使用strcpy函数

最后,我们可以使用标准库中的strcpy函数,将char指针复制到一个字符数组中,然后再将该字符数组转换为字符串。

#include <cstring>

const char* str = "Hello, World!";
char arr[100]; // 声明一个字符数组
strcpy(arr, str); // 复制char指针到字符数组
std::string s(arr); // 将字符数组转换为字符串

需要注意的是,这种方法容易发生缓冲区溢出,因此需要确保目标字符数组具有足够的空间来容纳char指针。

以上是在C++中char *转字符串的几种方法。每种方法都有其优缺点,具体使用可根据实际情况选择。