区别1:scanf()可以同时接受多个字符串,而gets()一次只能接受一个字符串。

C语言中scanf()和用gets()接收字符串的区别_换行符

区别2:scanf()可以不能接受带空格的字符串,而gets()能接受带空格的字符串。

C语言中scanf()和用gets()接收字符串的区别_字符串_02

C语言中scanf()和用gets()接收字符串的区别_换行符_03

C语言中scanf()和用gets()接收字符串的区别_换行符_04

C语言中scanf()和用gets()接收字符串的区别_字符串_05

C语言中scanf()和用gets()接收字符串的区别_字符串_06

区别3:scanf()不能接受长度为0的字符串,会自动忽略开头的所有空格,并且以空格、换行符、回车结束输入。而gets()能接受长度为0的字符串,不会自动忽略开头的所有空格或回车,并以回车结束。

C语言中scanf()和用gets()接收字符串的区别_换行符_07

C语言中scanf()和用gets()接收字符串的区别_字符串_08

C语言中scanf()和用gets()接收字符串的区别_换行符_09

总结:

两者在接受字符串时:

1.不同点:

scanf不能接受空格、制表符Tab、回车等;

而gets能够接受空格、制表符Tab和回车等;

2.相同点:

字符串接受结束后自动加’\0’。