1、scanf
scanf以%s格式符读入字符串,会以空格为结束,也就是无法将空格读入。如果换成%c就可以读入,但是无法一次性读入一整行字符。
2、fgets
显然,fgets是一个读取带空格字符串的利器,简单方便。
3、getchar()
利用getchar(),getchar可以读入换行还有空格,有时候有些函数无法读入换行,比如cin,但是会留在缓冲区,就可以利用getchar去吸收。上面的代码可以实现循环读入带有空格的字符串,并且以换行结束字符串。
4、getline
可以利用C++的getline读取带空格的字符串,并且自动以换行符为结束,但是不会读取换行符。而且可以利用强大的string容器。
总结:建议使用fgets函数以及getline函数去处理字符串,简单快捷。