繁体   English   中英

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

[英]How to merge arrays passed to a function with variable parameters

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

#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);
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM