黑马程序员技术交流社区

标题: 如何用scanf函数接收一句字符串 [打印本页]

作者: 475201052    时间: 2014-3-24 20:40
标题: 如何用scanf函数接收一句字符串
本帖最后由 475201052 于 2014-3-24 21:39 编辑

如题,用scanf函数怎么接受输入的一句字符串。
chair name[]
    sacnf("%s",&name)
这样对吗
作者: 脸皮猴    时间: 2014-3-24 20:55
第一 你的定义就出错了;
chair name[] // chair 改为 char ,你的数组没有定义长度,肯定是不行的。

正确做法:
char name[10]; // 定义一字符串数组,最多存放10个元素
scanf("%d", name); //读取用户输入的字符串 注意!最多10个字符这个和你的定义数组大小有关系
作者: FlyTrem    时间: 2014-3-24 20:58
本帖最后由 FlyTrem 于 2014-3-24 20:59 编辑

chair name[]
     sacnf("%s",&name)
首先你写的有误,chair name[]这个是要定义长度的,不定义长度就需要进行初始化的应该这样char name[10]或char []="ddfsdfaa";还有字符串的格式是“char”而不是“chair”.
sacnf("%s",&name)这个也不对,字符串名代表的是字符串首个字符的地址,相当指针的要这样sacnf("%s",name);
scanf函数可以接受字符串,但不能接受含有空格字符的字符串,如果想接受含有空格的字符串要用gets
这样:gets("%s",name)
希望对你有帮助!!
作者: stone24    时间: 2014-3-24 21:05
定义字符串有两种方式一种用指针,一种用数组。如char name[];//char *name
对应的输入scanf("%s",name);//scanf("%s",name); 注:数组名就是数组的地址,
也可以&name[0],数组首个元素的地址。不知道这样说,你懂没
作者: 475201052    时间: 2014-3-24 21:38
stone24 发表于 2014-3-24 21:05
定义字符串有两种方式一种用指针,一种用数组。如char name[];//char *name
对应的输入scanf("%s",name);// ...

恩。懂了懂了
作者: 475201052    时间: 2014-3-24 22:23
FlyTrem 发表于 2014-3-24 20:58
chair name[]
     sacnf("%s",&name)
首先你写的有误,chair name[]这个是要定义长度的,不定义长度就需要 ...

:handshake




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