gpt4 book ai didi

c - 如何合并传递给具有可变参数的函数的数组

转载 作者:行者123 更新时间:2023-11-30 17:01:54 25 4
gpt4 key购买 nike

我一整天都在研究如何合并数组以及使用可变参数创建函数。然后我开始思考,“我不能将两者结合起来吗?”。我想出了这个功能。根据我的理解,它应该有效,但我遇到了错误。谁能告诉我我做错了什么?

#include <stdio.h>
#include <stdarg.h>

char* merge(int num, ...)
{
va_list list;
char arr[9] = {0};
char *temp;
int i;
int j;
int k=0;

va_start(list,num);

for(i=0;i<num;i++)
{
temp = va_arg(list,char[]);
j = 0;
while(temp[j] != 0x00)
{
arr[k] = temp[j];
j++;
}
k++;
}
va_end(list);
return arr;
}

int main()
{
char data_1[] = "my";
char merged_array[9] = "legs";
int n=0;

//merged_array = merge(1, data_1);
while(merged_array == 0x00)
{
printf("%s\n",merged_array[n]);
n++;
}
}

最佳答案

也许这会帮助您开始:

#include <stdio.h>
#include <string.h>
#include <stdarg.h>

char* merge(char *arr, int num, ...)
{
va_list list;
int i;

va_start(list,num);
for(i=0;i<num;i++)
strcat(arr, va_arg(list,char *));
va_end(list);

return arr;
}

int main()
{
char data_1[] = "my";
char merged_array[9] = "legs";

merge(merged_array, 1, data_1);
printf("%s\n", merged_array);

return(0);
}

关于c - 如何合并传递给具有可变参数的函数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com