gpt4 book ai didi

c - 在 C 中返回二维字符数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:19 24 4
gpt4 key购买 nike

我想将一个二维字符数组作为函数的输入(实际上我的二维数组是全局的,函数没有输入),更改其中的值,然后返回另一个二维字符数组。

char stoixeia[50][7];
int main(int argc, char *argv[])

...

if (strcmp(answer, "Gift")==0) 
{
gift();
}


char gift ()
{
int i,j,m;
int wrong=0;
int k=0;
char usern[50];
while(wrong=0)
{

printf("Enter the username that you want to Gift:\n");
scanf("%s", &usern);
for (i=0; i<50; i++)
{
if (*usern==stoixeia[i][0])
{
wrong=1;
k=i;
}
}

}
m=strlen(usern);
for(i=0; i<m; i++)
{
stoixeia[k][6]= stoixeia[k][6] + 10;
}



return stoixeia[50][7];

}

我的想法是,如果我将我的数组声明为全局数组,我的函数中的所有内容都会发生变化,并且该数组将得到“更新”。编译器没有显示任何错误,但是当我运行程序并且我的 answerGift 时,.exe 停止工作。你能建议我什么吗?谢谢

最佳答案

你的函数必须是这样的:

您不需要返回值,因为您直接更改了全局变量。

void gift ()
{
int i,j,m;
int wrong=0;
int k=0;
char usern[50];
while(wrong==0) /* replace = by ==*/
{

printf("Enter the username that you want to Gift:\n");
scanf("%s", usern);
for (i=0; i<50; i++)
{
if (usern[i]==stoixeia[i][0])
{
wrong=1;
k=i;
}
}
}
m=strlen(usern);
for(i=0; i<m; i++)
{
stoixeia[k][6]= stoixeia[k][6] + 10;
}
}

关于c - 在 C 中返回二维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530879/

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