使用指针初始化 char 数组或字符串 C++

Initialize a char array or string with a pointer in C++

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

我有一个指针,接下来X元素是ASCII字符,末尾有一个''。我需要将ASCII字符保存在char数组或string类型中。

是否可以使用指针在C++中动态初始化stringchar数组? 下面的代码不会编译并出现以下错误:

char symbol[11];
symbol = (packet+8);

错误:数组类型"char [11]"不可分配

(packet是保存数据的指针,ASCII字符从第 8 个位置开始(。

理想情况下,我希望避免遍历指针来初始化字符串或字符数组。

for (int i = 0; i < 11; i++) {
symbol[i] = *(packet+8+i);
}

提前感谢您的所有帮助。

您可以使用std::copy像这样复制内容:

char symbol[11];
std::copy(packet + 8, packet + 19, symbol);

或使用std::string构造函数:

std::string symbol(packet + 8, packet + 19);