如何将整数数组内容复制到字符指针?

时间:2011-11-19 16:18:40

标签: c arrays pointers

我有一个字符指针char *buf; 我有一个整数数组,int console_buffer[256]; 我需要将console_buffer内容复制到character buf。 我该怎么做呢? bufconsole_buffer是不同结构的一部分。

3 个答案:

答案 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检查,或者通过将最后两个字符与01)进行比较。

答案 2 :(得分:0)

我认为这是将值转换为char s

的更好方法
int i = 0;
while (i <= 256) {
    buf[i] = (char) console_buffer[i];
    i++;
}