有没有人知道如何将char *转换为字符串。实际上,我有一个函数,它返回值为char *,现在我需要存储/复制std :: string。 我尝试过像
这样的东西 char *sResult = (char*)malloc(1024);
std:string line;
line= line+ sResult
谢谢和问候, 萨姆
答案 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。