A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 475201052 中级黑马   /  2014-3-24 20:40  /  1822 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 475201052 于 2014-3-24 21:39 编辑

如题,用scanf函数怎么接受输入的一句字符串。
chair name[]
    sacnf("%s",&name)
这样对吗

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
第一 你的定义就出错了;
chair name[] // chair 改为 char ,你的数组没有定义长度,肯定是不行的。

正确做法:
char name[10]; // 定义一字符串数组,最多存放10个元素
scanf("%d", name); //读取用户输入的字符串 注意!最多10个字符这个和你的定义数组大小有关系

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 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)
希望对你有帮助!!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
定义字符串有两种方式一种用指针,一种用数组。如char name[];//char *name
对应的输入scanf("%s",name);//scanf("%s",name); 注:数组名就是数组的地址,
也可以&name[0],数组首个元素的地址。不知道这样说,你懂没

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
stone24 发表于 2014-3-24 21:05
定义字符串有两种方式一种用指针,一种用数组。如char name[];//char *name
对应的输入scanf("%s",name);// ...

恩。懂了懂了
回复 使用道具 举报
FlyTrem 发表于 2014-3-24 20:58
chair name[]
     sacnf("%s",&name)
首先你写的有误,chair name[]这个是要定义长度的,不定义长度就需要 ...

:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马