黑马程序员技术交流社区

标题: gets()和getchar()问题 [打印本页]

作者: Melody_cw    时间: 2014-7-20 01:12
标题: gets()和getchar()问题
本帖最后由 Melody_cw 于 2014-7-20 09:21 编辑

在搜索的资料里面知道了,gets()是接一个字符串然后放到一个字符数组中,getchar()是讲字符接受放到数组里面,谁能给我讲解下,我对这个概念还是很抽象。还有为什么不能用scanf("%s",name)来接受我输入的字符串呢

作者: Moebius    时间: 2014-7-20 01:24
首先 前面的那个是 字符串 而后面那个是字符,内存空间不一样大。scanf也可以,但是要注意,如果是字符串 要用%s 是单个字符用%c
作者: Melody_cw    时间: 2014-7-20 01:40
Moebius 发表于 2014-7-20 01:24
首先 前面的那个是 字符串 而后面那个是字符,内存空间不一样大。scanf也可以,但是要注意,如果是字符串  ...

#include<stdio.h>
int main()
{
        char name[5];
        scanf ("%s",&name);
        printf("%s",name);

        return 0;
}
这里入股哦我输入的是i love you,则最后得到的结果只是一个i
作者: Moebius    时间: 2014-7-20 03:49
Melody_cw 发表于 2014-7-20 01:40
#include
int main()
{

你字符串的长度就5  输入的字符太多,越界了。
作者: 为梦想挺身而出    时间: 2014-7-20 07:54
1、printf和puts区别
puts 一次性只能输出一个字符串,puts 会自动换行
printf 可以输出多个,printf要手动\n换行
2、scanf 和gets区别
scanf 可同时接收多个字符串,不能读取用户输入的tab键和空格,你输入i love you 有空格了
gets 只能接收一个字符串,可以读取用户输入的tab和空格
3、 putchar和getchar
putchar输出一个字符
getchar 接收一个字符,可以读取空格,tab, 有返回值
作者: Melody_cw    时间: 2014-7-20 09:00
为梦想挺身而出 发表于 2014-7-20 07:54
1、printf和puts区别
puts 一次性只能输出一个字符串,puts 会自动换行
printf 可以输出多个,printf要手动\ ...

太棒了,一下就豁然开朗,非常感谢!请版主给你加分!




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