用scanf()和gets()输入字符串的区别

时间:2021-12-14 01:48:13

相同点:字符串接受结束后自动加’\0’
不同点:scanf用%d输入数字或用%s输入字符串时,在开始读之前会跳过空格、回车或制表符等空白字符,再次遇到这些字符时,系统认为读入结束,因此不能输入带空格的字符串。未读取到的被留在了输入缓冲区中。
gets()以回车符作为字符串的终止符,同时将回车符从缓冲区读走,但不作为字符串的一部分。而scanf()不读走回车符,回车符仍留在输入缓冲中。