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

C-为什么我的字符串在发送到函数时返回Null?,c,string,function,null,C,String,Function,Null,我是一个完全的初学者,但我正在为学校做一个项目,我似乎无法让它工作 目标很简单:扫描5个字符串,计算它们的元音,然后使用函数按字母顺序排序 我对元音部分进行了排序,但当我将已扫描的字符串发送到我的函数时,它被读取为null,因此我无法在那里进行排序 我将向您展示非常简化的代码,以便更轻松地突出显示问题(无气泡排序): 希望您已经发现了问题,如果是,请帮助我更正代码。 如果需要,我可以发送其余的,我只是为了简单起见对其进行了修剪。传递给函数的内容与参数类型不兼容 函数需要一个类型为char[]的参

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

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

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

我将向您展示非常简化的代码,以便更轻松地突出显示问题(无气泡排序):

希望您已经发现了问题,如果是,请帮助我更正代码。
如果需要,我可以发送其余的,我只是为了简单起见对其进行了修剪。

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

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

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

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

您发布的代码中有错误。您将二维数组传递给接受一维数组的函数,并使用
%s
而不是
%c
打印字符
nombres[3]
。我认为您也必须发布其余的代码,因为此代码不足以重现您描述的问题。除此之外:
char abc(char nombres[]){printf(“\n%s”,nombres[3]);}
定义为返回
char
,但不返回任何内容。使用
void
,而不是返回
char
。是!!!!成功了!非常感谢你!从现在起,我将更加关注编译器日志,希望我的下一个问题不会是关于如此琐碎的事情。再次感谢@我很高兴能帮上忙。如果你觉得它有用的话,请随意使用。
Ingrese 5 nombres
juan
alberto
lautaro
milo
beatriz

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