-1

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

4

3 回答 3

3

只需分配它们:

std::string str = char_array;

当然,这仍然会在内部循环遍历字符串。不能避免这一点(但它非常有效)。

于 2013-10-27T19:21:51.507 回答
3

只需使用std::string::string(char const*)构造函数,因为 C 风格的数组隐式衰减为指针,所以该构造函数有效:

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

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


如果您有一个std::arrayorstd::vector而不是 C 样式的数组,请使用以下内容:

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

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

于 2013-10-27T19:22:29.897 回答
1

请参阅构造函数 4 和 5

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

std::string str(s);
于 2013-10-27T19:24:42.710 回答