C-为什么我的字符串在发送到函数时返回Null



我是一个完全的初学者,但我正在为学校做一个项目,我似乎无法让它发挥作用。

目标很简单:扫描5个字符串,计算它们的元音,然后使用函数按字母顺序排序。

我已经对元音部分进行了排序,但当我将已经扫描的字符串发送到函数时,它会被读取为null,所以我无法在那里进行排序。

我会向你展示非常简化的代码,这样我就可以更容易地突出问题(没有气泡排序(:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char abc(char nombres[])
{
printf("n%s", nombres[3]);
}
int main()
{
char nombres[20][20];
printf("Ingrese 5 nombres:n")
for (int i = 0; i < 5; i++)
{
scanf(" %s", nombres[i]);
}

abc(nombres);
return 0;
}

在我的想象中,它应该显示扫描的第三个输入,但输出显示:

Ingrese 5 nombres
juan
alberto
lautaro
milo
beatriz
(Null)

希望你已经发现了这个问题,如果是的话,请帮我纠正我的代码。如果你愿意,我可以把剩下的寄给你,我只是为了简单起见把它修剪了一下。

传递给函数的内容与参数类型不兼容。

函数需要一个类型为char []的参数,作为函数参数,该参数与char *完全相同。你传递给它的是一个char [20][20]。您的编译器应该对此进行警告。它还应该警告您不要在类型为charabc内部发送nombres[3],即单个char,而不是%s格式说明符所期望的字符串。

你需要将参数类型更改为函数,以匹配你传递给它的内容和你使用它的方式

char abc(char nombres[20][20])

相关内容

  • 没有找到相关文章

最新更新