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

Initialize a String using a Character Array

本文关键字:初始化 字符串 数组 字符      更新时间:2023-10-16

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

只需分配它们:

std::string str = char_array;

当然,这仍然在内部循环通过字符串。没有避免这种情况(但它非常有效)。

只需使用 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

参见构造

函数 4 和 5

char s[] ={'a','b','c', ''};
std::string str(s);