如何读取字符串中的空格

根据前面的学习,我们可以知道scanf读取到空格/回车/tab会停止读取,后面的内容会交给后面的scanf读取。

那么问题来了,我们如何让scanf语句把字符串中的空格也读取呢?

在scanf中使用%[ ]参数。这个参数的作用就是读取一个字符集合。[]中括号里面输入读取的字符集合。比如%[a-z]读取a到z的字符集合。要读取一行只要,只要设置为读取非换行符就可以了%[^\n]:

如何读取字符串中的空格_第1张图片

我们也可以使用gets函数,gets函数读取字符串,直至遇到回车符或遇到EOF停止读取。
gets函数的格式:char *gets(char *str),gets函数从STDIN(标准输入)读取字符,并将它们写到变量str之中,直到遇到换行符\n或到达EOF。gets会读取空格,且gets函数遇到\n后,不会存储\n,而是将其翻译为空字符’\0’

与gets函数对应的输出函数puts的格式:int puts(const char *str)
函数puts把字符串str写入STDOU(标准输出)。puts执行成功时返回非负值,执行失败时返回EOF,相当于printf函数,puts只能用于输出字符串,同时多打印一个换行符。

如何读取字符串中的空格_第2张图片

你可能感兴趣的:(C/C++,c语言,开发语言,c++,面试,c#)