解决scanf无法完整获取带空格字符串问题

简介: 解决scanf无法完整获取带空格字符串问题

一般情况下我们都会选择用scanf获取字符串,但是当字符串中含有空格时就会出现以下情况

1. #include<stdio.h>
2. int main()
3. {
4.  char arr[10];
5.  scanf("%s",arr);
6.  printf("%s", arr);
7.  return 0;
8. }

我们发现scanf读到空格就结束了,只读了空格前的那部分

为了解决这种问题,我提供两个解决方法

1、用gets()函数获取

gets()函数可以获取带空格的字符串,直到遇到‘\n’结束

1. #include<stdio.h>
2. int main()
3. {
4.  char arr[10];
5.  gets(arr);
6.  printf("%s", arr);
7.  return 0;
8. }

2、用scanf("%[^\n]",arr);

当我们喜欢用scanf获取完整字符串时,就可以用scanf("%[^\n]",arr);,但是这种方法有点麻烦,不推荐使用

#include<stdio.h>
int main()
{
  char arr[10];
  scanf("%[^\n]", arr);
  printf("%s", arr);
  return 0;

7a8e56797727aa79b2a3824f08bdb51c_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aiB5aiB5rKB5rKB,size_14,color_FFFFFF,t_70,g_se,x_16.png

相关文章
|
6月前
|
编译器 C语言 开发者
C语言「常量折叠」:编译器的隐形优化陷阱,90%开发者踩过的常量计算骗局
C语言常量折叠是编译器在编译期预计算常量表达式(如`10+20→30`)的优化机制,可提升运行效率,却易致调试困惑、嵌入式寄存器操作失效等陷阱。关键要分清字面量/宏/enum(真常量)与`const`变量(仅只读),慎用宏、禁用`volatile`参与折叠,并合理控制优化等级。
|
11月前
|
算法 物联网 芯片
基于STM32和51单片机的8位全彩流水灯程序模板
基于STM32和51单片机的8位全彩流水灯程序模板
1015 97
|
Shell Linux Android开发
【Linux】【编译相关】execvp: /bin/sh: Argument list too long问题处理小结
【Linux】【编译相关】execvp: /bin/sh: Argument list too long问题处理小结
2922 0
|
机器学习/深度学习 人工智能 自然语言处理
【专栏】Python在人工智能领域的应用现状、优势及未来趋势
【4月更文挑战第27天】本文探讨了Python在人工智能领域的应用现状、优势及未来趋势。Python作为数据科学、机器学习、深度学习和自然语言处理的首选语言,拥有丰富的库如NumPy、Pandas、TensorFlow和NLTK等。其简洁易学、跨平台和活跃社区等特点促进了AI的普及和发展。未来,Python将在强化深度学习、融合新兴技术、提高可解释性和人才培养等方面持续发挥关键作用。
3407 2
makefile 变量的替换,嵌套引用,命令行变量
makefile 变量的替换,嵌套引用,命令行变量
597 1
|
机器学习/深度学习 人工智能 自然语言处理
微软Copilot官网入口- Copilot中文版国内使用入口
微软Copilot应运而生,它不仅仅是一款软件,更像是一位人工智能副驾驶,旨在通过强大的AI技术,解放你的双手
8029 6
条件变量函数pthread_cond_timedwait实现业务场景
条件变量函数pthread_cond_timedwait实现业务场景
723 0
|
人工智能 Linux 文件存储
旧台式电脑的 10 种用途
旧台式电脑的 10 种用途
1465 14
|
机器学习/深度学习 编解码 算法
常用的Python库介绍
Python作为一种功能强大的编程语言,拥有众多的第三方库和框架,这些库和框架覆盖了从数据处理、网络编程、Web开发到人工智能等多个领域。
538 15
|
开发工具 git 开发者
[译] 🙏 请把 .gitattributes 加入你的项目
[译] 🙏 请把 .gitattributes 加入你的项目
[译] 🙏 请把 .gitattributes 加入你的项目