c语言中几个读取键盘输入带空格字符串的方法

本文介绍了C语言中读取包含空格的字符串的三种方法:使用scanf的扫描集功能,通过%[^ ]来读取整句;使用gets函数,它可以无限读取直到遇到回车;以及使用fgets函数,它限制了读取的字符数,更安全。了解这些方法有助于更好地处理C语言中的键盘输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

  2. 1.scanf
  3. 用scanf貌似接受不了句子,因为遇到空格就停止;
  4. 但是有一个解决的好方法,可以用%[^\n];%[]是scanf的格式控制符。
  5. 以下是百度百科的说明:
    %[ABC]
    使用扫描集时,scanf() 连续吃进集合中的字符并放入对应的字符 数组,直到发现不在集合中的字符为止(即扫描集仅读匹配的字符)。返回时, 数组中放置以 null 结尾、由读入字符组成的字符串。
    用字符 ^ 可以说明补集。把 ^ 字符放为扫描集的第一字符时,构成其它字符组成的命令的补集合,指示 scanf() 只接受未说明的其它字符。
    对于许多实现来说,用 连字符可以说明一个范围。 例如,以下扫描集使 scanf() 接受字母 A 到 Z: %[A-Z]

  6. 2.gets
  7. gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取。

  1.          用gets()函数才能输入字符串,且遇到空格不会结束。但是gets函数的缺点是不安全,执行读操作时易发生溢出。 存在潜在的缓冲区溢出问题,          gets()已在C99下废弃,在C11下停用,如需读入整个字符串,应使用fgets()。

  1. 3.fgets
            fgets(x,   sizeof(x),   stdin), 同时可以用作键盘输入:fgets(key,n,stdin)且还必须:key[strlen(key)-1]='\0' 还有种程序经常使用的方法:                key[strlen(key-1)]=0x00; 与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积              导致的缓存溢出问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值