一、gets()

该函数原型为:

# include <stdio.h>
char *gets(char *str);

gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间

# include <stdio.h>
int main(void)
{char a[256] = {0};gets(a);printf("%s",a);return 0;
}

运行结果:

二、getchar()

# include <stdio.h>
int main(void)
{int i=0;int j;char ch;char a[256] = {0};while((ch=getchar())!='\n')//一直接收缓冲区的字符。直至收到回车{a[i]=ch;i++;}a[i]='\0';    //加上串尾符for(j=0;j<i;j++){printf("%c",a[j]);}return 0;
}

运行结果:

三、scanf()

# include <stdio.h>
int main(void)
{char a[256];scanf("%s",&a);printf("%s",a);return 0;
}

运行结果:

注:

  • scanf这种格式串不能接收带空格的字符串,比如输入"abc 123 678"的话,字符串只会接收到abc,遇空格就结束

  • 使用 gets() 时,系统会将最后“敲”(Enter)的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符
    而使用scanf时,最后的“敲”会遗留在缓冲区中,如果使用scanf,则需要使用gerchar()将缓冲区的Enter吃掉

  1. 使用gets()后再输入一个字符,可知缓冲区无残留Enter
  2. 换成scanf后,只敲了一次回车就结束程序,可知scanf情况下缓冲区有残留Enter
  3. 加入getchar()即可解决残留Enter问题

【C语言】字符串输入的三种方式相关推荐

  1. Go语言字符串拼接的三种方式

    Go语言字符串拼接的三种方式 使用bytes.Buffer实现字符串拼接 通过创建一个缓冲byte类型的缓冲器str1,然后通过WriteString方法将传入的字符串放入缓冲器的尾部,已达到拼接的作 ...

  2. c语言定义不定长数组初始化_C语言数组初始化的三种方式

    1.{0} 初始化 int arr1[3] = {0}; 使用 {0} 的方式最简洁,一般在定义的时候使用. 2.for 循环初始化 int arr2[3]; for (int i = 0; i &l ...

  3. python字符串换行的三种方式_Python 字符串换行的多种方式

    第一种: x0 = '<?xml version="1.0"?>' \ ' ' \ ' Python' \ ' Ruby' \ ' ' 第二种: x1 = '<? ...

  4. Java 字符串拼接的三种方式 “+”、“String.format()”、“StringBuilder.append()”,换行拼接“\r\n”

    在进行功能开发的时候,会经常需要拼接多个字符串,比如在请求地址上的参数拼接.返回一个信息描述文段需要拼接多个子文段等,那我们常用的解决方式就是以下三种了,第一种也是比较常用简单的,直接用+号进行拼接s ...

  5. 字符串输入的几种方式

    字符串配套 1,以字符数组输入 #include <iostream> #include <string> const int M = 1e5 + 10; char str[M ...

  6. C语言关于scanf语句输入的三种方式。

    注意:本文使用的编译软件的是vs2010. 1.scanf("%d%d%d",&a,&b,&c) 填写a b c的数值时,中间要有空格号隔开.如下图. -- ...

  7. python字符串换行的三种方式_python中的字符串内部换行方法

    python中的字符串内部换行方法 python里有两种在字符串内部换行的方式(使用一个print打印多行字符串). 首先使用\n的方法大家肯定都知道了. 然后是使用 ''' 三个单引号大方法. 在交 ...

  8. C语言字符串分割的两种方式

    一.利用strtok()函数进行分割 函数头文件#iinclude<string.h> 函数原型:char *strtok(char s[], const char *delim);s[] ...

  9. python字符串换行的三种方式_Python:怎样拼装超长字符串和包含回车换行字符串...

    Python 中字符串可以使用单引号('--')或双引号("--")表示.反斜杠 \ 是转义字符.如果你不希望 \ 转义字符成特殊字符,可以在引号前添加 r 即可.如下所示: &q ...

最新文章

  1. linux lab命令,Linux lab 命令
  2. 深入理解pytorch中计算图的inplace操作
  3. canvas arcTo()用法详解 – CodePlayer
  4. python编码解码的过程_使用Python过程中的编码和解码
  5. mac下shell给文件名批量加前缀
  6. 高级数据结构与算法 | 二叉搜索树(Binary Search Tree)
  7. 如何使用Play框架为https配置SSL证书
  8. C语言八字图标软件,ico图标编辑器(Greenfish Icon Editor)
  9. 机器学习模型的理解(三)
  10. 学习git: 常用命令
  11. 【学术相关】iccv、cvpr、eccv论文接收率及格式下载(附论文下载)
  12. PC防光护眼专家Iris Pro绿色特别版 傻瓜式软件
  13. Cocos Creator如何制作3D微信小游戏教程
  14. Failed to read artifact descriptor for com.google.errorprone:javac:jar:9+181-r4173-1
  15. 完美预约爆满,实行瞬时限流……高温天,到美术馆、博物馆溜娃避暑成了杭州人的新选择
  16. 程序猿推荐:仿微信下拉录制视频源码分享
  17. css--盒子的尺寸
  18. ZXing 相册中识别二维码和条形码(直接引用就可以了)
  19. 智能多模式,视线追踪控制界面的应用(翻译)
  20. 【opencv】二维面找角点/关键点 实现

热门文章

  1. [转帖]pfSense软路由系统的使用
  2. (简单)华为M3揽月 BTV-W09的Usb调试模式在哪里开启的经验
  3. 查找大于且最近2的幂次方的数
  4. 【杂文】CM 倒下了,但还有这些第三方安卓 ROM 让你刷个痛快
  5. 除了量子计算机还有什么,被西方称为中国新“霸权”的量子计算机,除了波色采样还会什么?...
  6. 北京理工大学-操作系统原理 第2章作业2
  7. Flutter 弹性布局的基石: flex 和 flexible
  8. 课节2: Python编程基础
  9. 现在陪玩多吗,用Python来看看他们的行情
  10. 计算机区位码2083转为16进制是多少,区位码2083如何转化为十六进制?