这道题要求输入的形式如下
abc def
dfs deddf
.....
def
deff
上面用一个空行表示输入的结束。然后开启下面的输入。怎么解决这个问题呢?
先说说scanf():scanf可以用来输入各种数据类型的变量,自动忽略末尾的回车符。但是scanf的一个问题就是对于scanf("%s%s")这种,字符串间不能有空格
如果想要把空格也输入进去,必须用到gets()
getchar()函数能够吸收回车换行符
那么对于这个问题
while(gets(ch))
{
if(ch[0]==0)
break;
sscanf(ch,"%s%s",s1,s2);
}
这个sscanf干什么的呢?
从一个字符串中读进与指定格式相符的数据。
比如
char buf[512] = ;
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);
结果为:123456
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
那么上面就是把ch得到的内容交给s1,s2。因为中间有空格作为分隔符,自然就可以把ch分开成两个字符串了。