A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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()可以输入无限长度的字符串,如果超出指定范围,系统就会出错。输入时一定要控制好长度。








   



}

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

8 个回复

正序浏览
这个学习下!
回复 使用道具 举报
应该还有一点,gets只能接收字符串,不能接受整型
回复 使用道具 举报
C的很多东西还是挺重要的,总结的不错
回复 使用道具 举报
赞一个,很详细
回复 使用道具 举报
可以,不错不错
回复 使用道具 举报
支持一个 ,~~
回复 使用道具 举报
恩,基础要扎实
回复 使用道具 举报
不错哦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马