黑马程序员技术交流社区
标题:
黑马程序员-----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