我有一个指针,下一个 X
元素是 ASCII 字符,末尾带有'\0'
。我需要将 ASCII 字符保存为char
数组或string
类型。
是否可以使用指针动态初始化string
中的char
或C++
数组?
下面的代码无法编译并出现以下错误:
char symbol[11];
symbol = (packet+8);
错误:数组类型'char [11]'无法分配
({packet
是一个保存数据的指针, ASCII 字符从第8个位置开始)。
理想情况下,我想避免不必遍历指针来初始化字符串或字符数组。
for (int i = 0; i < 11; i++) {
symbol[i] = *(packet+8+i);
}
预先感谢您的帮助。
答案 0 :(得分:1)
您可以使用std::copy
复制如下内容:
char symbol[11];
std::copy(packet + 8, packet + 19, symbol);
或使用std::string
构造函数:
std::string symbol(packet + 8, packet + 19);