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