如何使用scanf输入多个带空格的字符串

字符串处理

写题时使用scanf输入,但是我想优化一下,让程序的的通用性更强一些,故我想使用scanf实现带空格的字符串的输入,但是出现了疑惑,字符串带空格输入怎么弄,显然scanf("%s",str);肯定不行,所以我查了资料。

 1.  scanf()函数的控制串

函数名: scanf ()
功  能: 执行格式化输入
用  法: int scanf(char *format[,argument,...]);

其中有个^(取反)而%[^\n](除了回车之外的所以字符都可接受遇到回车则结束取值)

如果这样输入的话,第一个数组中的确有数据被输入了。

但是,通过观察数组的赋值情况,我们发现第二个数组中并没有任何一个数据被赋值。也就是说,输入过程跳过了第二个

数组。

通过分析,第二个数组是因为接受到了回车符,所以才提前结束输入过程,从而第二个数组中并没有数据进入。

那么如何解决呢?

可想而知是因为这个回车符才使得输入过程提前结束,那么解决方法就是让回车符不接触到第二个数组。

那么我们在两个待输入的数组中间,加一个字符变量来接受回车符,这样的话便能够阻止第二个数组接触到

回车符。

没错,这样的话便可以实现带空格的字符串向不同的数组中输入。

如有错误还请指正,谢谢。

发布了29 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/yyk219/article/details/79818862