| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1169 人关注过本帖
标题:求教!!!字符串输入长度限制问题
只看楼主 加入收藏
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
结帖率:100%
收藏
 问题点数:0 回复次数:7 
求教!!!字符串输入长度限制问题
看书上说,定义字符串长度需要设定限值,不能输入超过限制的范围,否则输出会被截断,同时碰到空格也被截断
main()
{
 char a[1];
   scanf("%s",a);
   printf("%s\n",a);
}
如上一个简单输入输出,因为我将字符串数组长度设为1,但是运行后发现,我即使输入数十个字符,回车后printf都能够正常显示,这不是与书上的说明冲突了吗?这是为什么呢?
顺便说下,我的环境是Win_tc
搜索更多相关主题的帖子: 字符 长度 输入 
2010-04-16 21:49
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
收藏
得分:0 
请大家帮忙看看
2010-04-16 21:59
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
这就是数组越界!具有一定的危险性,但不是在任何时候都会出问题!

★★★★★为人民服务★★★★★
2010-04-16 22:04
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
收藏
得分:0 
回复 3楼 cnfarer
明白了,谢谢版主,同时,我还想在问下,敲代码时,scanf("%s",&a);这是后来特意加了个地址符,本以为会报错,没想到编译通过且能运行,是不是我的WIN-TC默认允许这样的输入?
2010-04-16 22:11
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 4楼 account
a是数组,本身就是地址!所以不需要加"&"。如果是变量一定要加 "&"

★★★★★为人民服务★★★★★
2010-04-16 22:27
account
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:91
专家分:107
注 册:2010-4-12
收藏
得分:0 
回复 5楼 cnfarer
斑竹,我明白数组输入不需要地址符,因为我是特意输入一个,想看错误返回类型的,没想到编译通过,所以觉得奇怪
2010-04-16 22:44
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:0 
缓冲区溢出。很多漏洞就是这样被利用的。
2010-04-16 23:16
ZZlove
Rank: 2
等 级:论坛游民
帖 子:29
专家分:28
注 册:2010-3-7
收藏
得分:0 
求一段输入一个不超过20个字符的字符串代码。
2010-06-03 23:45
快速回复:求教!!!字符串输入长度限制问题
数据加载中...
 
   



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

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