首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

希望将多个字符串(比如2个),该“字符串”可能含有‘\0',按顺序保存到一段分配的内存中

2012-11-05 
希望将多个字符串(例如2个),该“字符串”可能含有‘\0,按顺序保存到一段分配的内存中如题,希望将多个字符串(

希望将多个字符串(例如2个),该“字符串”可能含有‘\0',按顺序保存到一段分配的内存中
如题,希望将多个字符串(例如2个),按顺序保存到一段分配的内存中,用memcpy复制了第1个,想将第2个、第3个复制进内存中,本打算用strcat连接,但若中间有‘\0’则终止,我需要的是将完整的串复制进去(包括可能出现的‘\0’)请问如何保存这些字符串呢?

请高手指教!谢谢!

[解决办法]
用memcpy啊

C/C++ code
/** * @file    strjion.c * @brief    */#include <stdarg.h>#include <stdio.h>#include <string.h>char *strjoin(char *s, int n, ...){    va_list ap;    char *ptr, *arg;    int i;    size_t len;    va_start(ap, n);    ptr = s;    for (i = 0; i < n; i++) {        arg = va_arg(ap, char *);        len = strlen(arg) + 1;        memcpy(ptr, arg, len);        ptr += len;    }    va_end(ap);    return s;}int main(int argc, char *argv[]){    int i;    char s[1024];    strjoin(s, 3, "123", "456", "789");    for (i = 0; i < 12; i++) {        printf("%02x ", (unsigned int)(unsigned char)s[i]);    }    printf("\n");    return 0;} 

热点排行