scanf和gets的差别
Posted cathy_mu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf和gets的差别相关的知识,希望对你有一定的参考价值。
scanf("%s", str1);
scanf() 读取到空格时就认为字符串输入结束了,不会继续读取了。
第一个 scanf() 读取到 "Java" 后遇到空格,结束读取,将"Python C-Sharp" 留在缓冲区。第二个 scanf() 直接从缓冲区中读取,不会等待用户输入,读取到 "Python" 后遇到空格,结束读取,将 "C-Sharp" 留在缓冲区。第三个 scanf() 读取缓冲区中剩下的内容。
gets 是 get string 的缩写,意思是获取用户从键盘输入的字符串,语法格式为:
gets(arrayName);
当输入的字符串中含有空格时,输出仍为全部字符串,这说明 gets() 函数不会把空格作为输入结束的标志,而只把回车换行作为输入结束的标志,这与 scanf() 函数是不同的。
总结:如果希望读取的字符串中不包含空格,那么使用 scanf() 函数;如果希望获取整行字符串,那么使用 gets() 函数,它能避免空格的截断。
以上是关于scanf和gets的差别的主要内容,如果未能解决你的问题,请参考以下文章