假设我有一个字符数组,我想将它转换为字符串。是否可以使用该字符数组初始化字符串,而无需遍历数组并将每个字符添加到字符串中?
问问题
103 次
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::array
orstd::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 回答