使用字符数组初始化字符串

时间:2013-10-27 19:20:34

标签: c++ string

假设我有一个字符数组,我想将其转换为字符串。是否可以使用该字符数组初始化字符串而不循环遍历数组并将每个字符添加到字符串中?

3 个答案:

答案 0 :(得分:3)

只需指定它们:

std::string str = char_array;

当然,内部还会循环遍历字符串。没有避免这种情况(但它非常有效)。

答案 1 :(得分:3)

使用std::string::string(char const*)构造函数,因为C风格的数组会隐式衰减到指针,所以它可以正常工作:

char my_character_array[] = "Hello, world!";
std::string my_string(my_character_array);

确保数组包含空字符,否则行为未定义。


如果你有std::arraystd::vector而不是C风格的数组,请使用以下内容:

std::string my_string(my_character_array.begin(), my_character_array.end());

如果您已有std::string个对象,请查看std::copy

答案 2 :(得分:1)

请参阅Constructor 4 & 5

char s[] ={'a','b','c', '\0'};

std::string str(s);