我正在尝试将std :: string复制到char *中,所以我一直这样:
char porta[10];
std::string p = "7855";
p[p.length()] = '\0';
std::copy(p.begin(), p.end(), porta);
当我这样做时,我得到“7855ìos”,我试图通过porta
替换char*
的数据类型,但这仍然是相同的。
我如何才能在porta
中获得“7855”?
提前致谢!
答案 0 :(得分:2)
您是否尝试过std::string::c_str()
?
答案 1 :(得分:0)
正如Kiske1所说,如果你想要一个C字符串,你可以使用c_str()
来获得一个以NULL结尾的字符串。如果你想在char数组中复制该字符串,那么这也会有效:
#include <string>
#include <iostream>
int main()
{
// Be careful about overflow!
char porta[10];
std::string p = "7855";
std::copy(p.c_str(), p.c_str() + p.length() + 1, porta);
std::cout << porta << std::endl;
return 0;
}