将char *转换为字符串

时间:2010-12-29 12:01:02

标签: c++ c

有没有人知道如何将char *转换为字符串。实际上,我有一个函数,它返回值为char *,现在我需要存储/复制std :: string。 我尝试过像

这样的东西

char *sResult = (char*)malloc(1024); std:string line; line= line+ sResult

谢谢和问候, 萨姆

7 个答案:

答案 0 :(得分:9)

怎么样

std::string line(szResult);

答案 1 :(得分:9)

const char*std::string(通过非显式构造函数)有一个 隐式转换 。所以以下内容都有效(假设ch为const char*char*

std::string s (ch);
std::string s = ch;
s = ch;
f(ch); //where f is declared to take std::string
etc

答案 2 :(得分:2)

std :: string类有一个带const char *的构造函数,所以你可以做

char *foo;
/* .... initialize foo ... */
std::string some_string(foo);

答案 3 :(得分:1)

std:string line; line.append(sResult); 要么 std :: string line(sResult);

答案 4 :(得分:1)

如果您的数据行不一定是C字符串,则使用字符串的构造函数

std::string s(sResult, sSize);

答案 5 :(得分:0)

试试这个:char* ptrToString = "wharever"; std::string szMyStdString = ptrToStrin g

答案 6 :(得分:0)

首先,您需要键入冒号 范围说明符如下:

std :: string 行;

然后根据您使用+运算符的C库可能不会 被重载以处理char *字符串,所以你应该更好 使用:

line = line + std :: string(sResult);

虽然你的实现,如果你修复范围说明符应该工作, 在全功能的c ++标准库实现中,如ms或gcc。