使用字符数组初始化字符串
Initialize a String using a Character Array
假设我有一个字符数组,我想将其转换为字符串。是否可以使用该字符数组初始化字符串,而无需循环遍历数组并将每个字符添加到字符串中?
只需分配它们:
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::array
或 std::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);
相关文章:
- 有没有办法在初始化字符串时避免来自 clang-tidy(fuchsia-default-arguments)的警告?
- 如何在 c++ 中初始化字符串的 2D 数组
- 在 C++ 中初始化字符串重要吗?
- 为什么我不能使用统一初始化初始化来初始化字符串?
- 使用大长度缓冲区初始化字符串流是否会使内存使用量加倍
- 在现代C++中初始化字符串的方式是否有不同
- 初始化字符串 c++ 数组中的值
- 初始化 c 字符串的向量
- 在 do-while 循环中初始化字符串将在检查条件之前跳转到它
- 初始化C++字符串向量的向量
- 初始化字符串矢量阵列时的错误
- 如何初始化字符串以包含C 中所需数量的数字数量
- C 在代码中初始化字符串变量时无控制台输出
- 初始化字符串时,额外的卷曲牙套
- 为什么我不能用"\x"初始化字符串
- 如何在C++中最好地初始化字符串向量
- 从二维数组中的char*初始化c++字符串时,读取大小为1的无效值
- C++初始化字符串数组
- 如何在C++中初始化字符串集
- 如何初始化字符串指针