在方法中传递一个char数组作为参数,C语言
Passing a char array as parameter in method, C language
这是我的第一个C语言编码。这是我的课程作业,我遇到了一些麻烦。
- 我想将 char[] 作为参数传递给方法
- 我想将这个 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;
}
这是我的第一个C语言编码。这是我的课程作业,我遇到了一些麻烦。
- 我想将 char[] 作为参数传递给方法
- 我想将这个 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;
}