如何正确使用char [int]

时间:2014-04-09 09:21:46

标签: c++

我正在尝试将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”?

提前致谢!

2 个答案:

答案 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;
}