
为什么这里的scanf只能接收3个字符?
首先每个字符串数组的末尾自带一个'\0'
你可以先scanf一个字母,然后再用while循环,while循环末尾再加个scanf
然后我们输入结束通常是输入-1,你可以改一下循环条件为 != -1
你用'\0'容易出问题,比如你输入空格也系统会自动输入一个'\0'
另外你设置了a[100],那么最后一个数组元素为a[99],要记住数组是从a[0]开始的
首先,你这个代码并不能解决什么问题。其次,判断条件取决于你得到的内存里原来有什么内容。所以,你应该修改一下while循环的条件。
可能在输入时出现了非法操作,从而使scanf()在'a'处停止输入。