在不使用string.h的情况下,可以使用指针操作来连接不确定数量的字符串。以下是一个示例代码:
#include<stdio.h>
#include <stdlib.h>
char *concat(int num, ...) {
va_list args;
int i, len = 0;
char *str, *res;
va_start(args, num);
for (i = 0; i < num; i++) {
str = va_arg(args, char*);
len += strlen(str);
}
va_end(args);
res = (char*)malloc(len + 1);
if (!res) {
printf("Memory allocation failed!\n");
return NULL;
}
va_start(args, num);
for (i = 0, *res = '\0'; i < num; i++) {
str = va_arg(args, char*);
strcat(res, str);
}
va_end(args);
return res;
}
int main() {
char *s1 = "Hello";
char *s2 = "World";
char *s3 = "!";
char *result = concat(3, s1, s2, s3);
printf("%s\n", result);
free(result);
return 0;
}
在这个示例代码中,我们定义了一个名为concat的函数,它可以接受不确定数量的字符串作为参数,并将它们连接在一起。我们使用了可变参数列表来实现这个功能。在函数内部,我们首先计算所有字符串的长度,然后分配一个足够大的内存块来存储连接后的字符串。最后,我们使用strcat函数将所有字符串连接在一起,并返回结果。
需要注意的是,这个示例代码中使用了malloc函数来分配内存,因此在使用结果之后,需要使用free函数来释放内存。
领取专属 10元无门槛券
手把手带您无忧上云