在方法中传递一个char数组作为参数,C语言

Passing a char array as parameter in method, C language

这是我的第一个C语言编码。这是我的课程作业,我遇到了一些麻烦。

  1. 我想将 char[] 作为参数传递给方法
  2. 我想将这个 char[] 复制到另一个 char[]。为此,我正在使用 strcpy。

所以当我这样做时:

main(){
char asd[20] = {"asd"};
insert(asd);
}

void insert(char value[]) //here value[] contains only 'd'
{
   ...code...
}

所以基本上,它只传递一个字符,而不是数组。我试过:

main(){
  char *asd[20] = {"asd"};
  insert(asd);
}

void insert(char *value[]) //here value[] contains 'asd'
{
   char *secondArray[20] = {'   '}
   strcpy(secondArray,value); // char** incompatible with "const char*"
}

我卡住了。

你没有正确声明你的字符串,它们应该是字符数组而不是字符指针数组

char *asd[20] = {"asd"};

char asd[20] = {"asd"};

 char *secondArray[20] = {'   '}

 char secondArray[20] = {'   '}

更正后的程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void insert(char *value);

int main(){
  char asd[20] = {"asd"};
  insert(asd);
  return 0;
}

void insert(char *value) //here value[] contains 'asd'
{
   char secondArray[20] = {"   "};
   strcpy(secondArray,value); // char** incompatible with "const char*"
   printf("%s",secondArray);
   return;
}