我有一个字符指针char *buf;
我有一个整数数组,int console_buffer[256];
我需要将console_buffer
内容复制到character buf。
我该怎么做呢? buf
和console_buffer
是不同结构的一部分。
答案 0 :(得分:1)
通过你的评论,
buf = malloc(256); // 257 if console_buffer may be full without EOF
/* if you want to allocate just as much space as needed, locate the EOF in console_buffer first */
for(int i = 0; i < 256 && console_buffer[i] != -1; ++i){
buf[i] = (char)console_buffer[i];
}
答案 1 :(得分:0)
如果您已为buf
分配内存,并且每个整数介于0和9之间,则可以执行以下操作:
for(int i = 0; i < 256; i++)
{
buf[i] = '0' + console_buffer[i]; /* convert 1 to '1', etc. */
}
如果整数大于9,则可以使用sprintf
函数。
阅读你的新评论,或许你也可以通过从控制台缓冲区直接读取一个字符数组来实现你的目标,直到你有-1
(通过整数比较或strcmp
检查,或者通过将最后两个字符与0
和1
)进行比较。
答案 2 :(得分:0)
我认为这是将值转换为char
s
int i = 0;
while (i <= 256) {
buf[i] = (char) console_buffer[i];
i++;
}