C语言中的gets()、getchar()、scanf()

gets(s)

s是字符数组名(如果是指针的话,需要先给指针分配一块内存空间,才可以使用gets()函数对其进行赋值)。
gets()函数是读取整行输入,允许输入的字符串中带有空格,直到遇到换行符停止,然后删去换行符只读取其它的字符并在结尾加上代表字符串终止的字符’\0’。
存储n个字符,至少需要定义一个有效长度为n+1的字符数组,留一个位置来存储’\0’字符。
gets()有返回值,如果输入成功返回字符串第一个字符的地址,输入失败则返回NULL。
(’\0’无法手动输入,可以在程序内进行赋值,如str[i] = 0;或者str[i] = '\0';
但是gets()函数无法判断字符数组空间能否装下输入的字符串,所以可能会导致缓冲区溢出,将字符写入到与其相连的内存空间。

getchar()

getchar()函数有一个整型的返回值,当发生读取错误的时候,返回整型值-1,当读取正确的时候,它会返回用户从键盘输的第一个字符对应的编码值。
逐个读取字符,在逐个读取完毕后,需要手动在最后一位字符后加上一个’\0’字符,getchar()函数不会自动自动加上’\0’字符。

scanf("%s", s)

s必须是字符型数组名,该函数遇到回车空格输入结束,并在结尾加上代表字符串终止的字符'\0'一起写入字符数组中。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值