| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:为什么对于字符串输入和输出的时候不同?
只看楼主 加入收藏
hh_melon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:6 
为什么对于字符串输入和输出的时候不同?
用数组定义一个字符串,
当直接初始值
char s[]="I am a boy";
printf("%s",s);
输出的是 I am a boy

而当这样输入的时候,
char s[11];
scanf("%s",s);
printf("%s",s);
输出的结果是: I.
不是说,当遇到空操作符的时候就结束的吗?怎么第一种情况可以打出I am a boy 的结果呢?
搜索更多相关主题的帖子: 字符 输出 定义 操作符 输入 
2007-05-12 17:55
liyuewen
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-5-7
收藏
得分:0 
应该scanf("%s",&s);
2007-05-12 18:14
lovefruit
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-14
收藏
得分:0 
回复:(hh_melon)为什么对于字符串输入和输出的时候...

楼上说的好象不队,s是数组名,代表数组的首地址,是地址,因此scanf("%s",s);没有错

2007-05-12 18:36
YOGIOH
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2007-5-8
收藏
得分:0 
以下是引用liyuewen在2007-5-12 18:14:25的发言:
应该scanf("%s",&s);

s已经代表数组首地址了
不需要取地址运算符号


2007-05-12 18:40
lovefruit
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-14
收藏
得分:0 
回复:(hh_melon)为什么对于字符串输入和输出的时候...

我刚才试过了,只要字符连续中间不带空格就可以了。
我是这样理解的:前面一个例子你用“”将 i am a boy送给s,整个是个字符串,而后面的例子是你输入字符串,因此中间不能带空格,空格后面的字符无效,就是说编译器将空格前面的字符视为一个字符,后面的又是视为另一个字符,也就是你刚才输入的i am a boy 是4个字符,因此只输出i

2007-05-12 18:46
lovefruit
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-14
收藏
得分:0 

写错了 是4个字符串

2007-05-12 18:48
emyhello
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-1-3
收藏
得分:0 

可以用gets函数。

2007-05-12 19:54
快速回复:为什么对于字符串输入和输出的时候不同?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018918 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved