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

时间:2020-07-04 02:13:14

标签: c++ arrays string

我有一个指针,下一个 X 元素是 ASCII 字符,末尾带有'\0'。我需要将 ASCII 字符保存为char数组或string类型。

是否可以使用指针动态初始化string中的charC++数组? 下面的代码无法编译并出现以下错误:

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

错误:数组类型'char [11]'无法分配

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

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

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

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用std::copy复制如下内容:

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

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

std::string symbol(packet + 8, packet + 19);
相关问题