C语言里可以只用scanf读入空格吗?

不用gets和getchar。
就只用scanf,比如the king of
直接用scanf("%s",str);肯定不好使,只读进了the
而且单词数和每次间隔的空格数也是未知的。不可以采用scanf("%s %s %s",&a,&b,&c);这种形式。
请问有人知道有什么办法实现吗?

第1个回答  2007-02-05
不那么方便,因为scanf()读入字符串时会跳过空格、回车,而只有读字符(%c)才读空格和回车,这与getchar()就没区别了。再有就是用%[]格式符,用法自己上网查吧。
可以用下面的方法解决,不过挺麻烦的。

#include <stdio.h>

int main()
{
char s[BUFSIZ], c;
while (scanf("%s%*[ \t]", s) == 1) {
printf("s = %s\n", s); /* 对读到的单词处理 */
if (scanf("%c", &c) == 1) {
if (c == '\n')
break;
else
ungetc(c, stdin);
}
else
break;
}
return 0;
}
第2个回答  2007-02-05
可以。不用系统提供的函数库,自己编一个代替。
第3个回答  2007-02-05
用 gets() 就行了,scanf() 有些地方实在是....
第4个回答  2007-02-05
char string[100],ch;
int i=0;
do
{
scanf("%c",&ch);
string[i++]=ch;
}
while(ch!='\n');
string[i-1]='\0';本回答被提问者采纳
第5个回答  2007-02-05
干吗不用gets??

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网