我们知道scanf("%s", s);
读入char*
字符串的时候是以空格为分隔符的,那么如果我们期望输入的字符串中本身就有空格呢?
比如我要读入一个句子How are you?
,这时候使用上述语句显然不可行。
可以用这个:
gets(s);//读到换行符结束
或者这个:
scanf("%[^\n]", s);
这个格式控制符%[]
的意思是读入[]
内部的字符,如%[A-Z]
表示只读入大写字母:
-
表示范围,^
表示非。故%[^\n]
表示一直读到回车为止。
注意使用这个方法读字符串的时候,最后一个\n
还会留在缓冲区,所以如果要多次读入字符串,需要在scaanf
之后添加一个getchar()
把回车读掉