黑马程序员技术交流社区

标题: 黑马程序员-----C语言关于scanf、gets和getchar区别 [打印本页]

作者: champion    时间: 2014-11-27 01:59
标题: 黑马程序员-----C语言关于scanf、gets和getchar区别
scanf()、gets()和getchar()函数的区别
一、先说说scanf()和getchar()
  sancf()和getchar()个函数同样是接收用户输入的信息。很明显getchar()只能接收一个字符,先用char类型定义变量。
即,
#include <stdio.h>
int main()
{
      char chr;
      chr=getchar();    //如果输入a
      printf("%c的ASCII码值是%d\n",chr,char);    //打印出:a的ASCII码值是65
      retrun 0;
}
而,scanf()能接收字符也能接收字符串。
#include <stdio.h>
int main()
{
    char chr;
    scanf("%c",&chr);   //要注意的是一定要写变量chr的地址&chr
    printf("%c\n",chr);    //如果输入a ,打印出也是a
    return 0;
}
或者
#include <stdio.h>
int main()
{
    char chr[];
    scanf("%s",chr);   //数组中默认变量名就是变量所在地址。
    printf("%s\n",chr);    //如果输入“hello”打印出也是“hello”
    return 0;
}
二、scanf()和gets()的区别
scanf()接收字符串时,字符串中不能带空格、回车、和Tab键。遇到这三个键系统会默认终止输入。即,
#include <stdio.h>
int main()
{
    char chr[20];
    scanf("%s",chr);    //如果输入Hello  world
    printf("%s\n",chr);    //输出结果则是Hello
    return 0;
}
但是get()不同,它可以接收任意长度的字符串。即,
#include <stdio.h>
int main()
{
    char chr[20];
    gets(chr);    //如果输入Hello  world!!
    printf("%s\n",chr);    //输出结果则也是Hello  world!!
    return 0;
}
不过用gets()的时候要注意,get()可以输入无限长度的字符串,如果超出指定范围,系统就会出错。输入时一定要控制好长度。








   



}

作者: mahei521    时间: 2014-11-27 08:20
不错哦!
作者: zhaihaohk    时间: 2014-11-27 10:15
恩,基础要扎实
作者: 天空总是很蓝    时间: 2014-11-27 10:28
支持一个 ,~~
作者: 任冰冰    时间: 2014-11-27 11:12
可以,不错不错
作者: 姗姗呵呵呵呵    时间: 2014-11-27 11:17
赞一个,很详细
作者: 考拉是只猫    时间: 2014-11-27 15:44
C的很多东西还是挺重要的,总结的不错
作者: 楚燮哥哥    时间: 2014-11-27 18:54
应该还有一点,gets只能接收字符串,不能接受整型
作者: dream静    时间: 2014-11-28 22:15
这个学习下!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2