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