首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不使用string.h的情况下连接不确定数量的字符串

在不使用string.h的情况下,可以使用指针操作来连接不确定数量的字符串。以下是一个示例代码:

代码语言:c
复制
#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函数来释放内存。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券