gets 和scanf区别
这是回车符滞留缓冲区的问题。第一次输入**然后回车,然后输入**再回车,实际上scanf读取的是**(回车符)*这4个数据。
gets函数读取方式是读取一个字符串并在后面加上'\0',这段程序用gets替换应该不会成功运行才对,因为你gets()的参数不合法,应该是一个地址。如果要用gets,应该取消第二个for循环,用gets(c[j]);才对。
原因出在输出语句上
,【20】元素的数组,下标最大是19
输出字符串只需要数组名或者首地址即可。
他们的区别是
scanf以空格结束输入。gets以回车结束输入
扩展阅读:scanf gets getchar ... scanf s详解 ... scanf 中文翻译 ... sst ... static int ... let sb do sth ... gets和scanf一起用 ... scanf与gets连用 ... c语言scanf和gets的区别 ...