希望将多个字符串(例如2个),该“字符串”可能含有‘\0',按顺序保存到一段分配的内存中
如题,希望将多个字符串(例如2个),按顺序保存到一段分配的内存中,用memcpy复制了第1个,想将第2个、第3个复制进内存中,本打算用strcat连接,但若中间有‘\0’则终止,我需要的是将完整的串复制进去(包括可能出现的‘\0’)请问如何保存这些字符串呢?
请高手指教!谢谢!
[解决办法]
用memcpy啊
/** * @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;}