| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 981 人关注过本帖
标题:字符串问题
只看楼主 加入收藏
lxqq1000
Rank: 2
等 级:论坛游民
帖 子:23
专家分:30
注 册:2010-5-19
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:10 
字符串问题
#include<stdio.h>
void main()
{
    char a[2];
    scanf("%s",a);
    printf("%s\n",a);

  }
如果输入aaaa为什么还能输出4个a,不是超过的定义的长度了吗?
#include<stdio.h>
void main()
{
    char a[2],b[2];
    scanf("%s%s",a,b);

    printf("%s\n%s\n",a,b);

    }
为什么输入aaa《回车》aaaa《回车》为什么会这样
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 lxqq1000 于 2010-6-10 12:34 编辑 ]
搜索更多相关主题的帖子: 字符 
2010-06-10 11:53
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:1 
C语言对越界问题没有严格的限制,用键盘输入时,即使输入的字符串超过原数组大小,但字符数组依然接受输入的字符!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-10 12:15
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:1 
#include<stdio.h>
void main()
{   
    int i;
    char a[2];
    for(i=0;i <= 2;i++)
    scanf("%c",&a[i]);
    a[i] = '\0';
    printf("%s\n",a);

  }
2010-06-10 13:38
张丹
Rank: 2
等 级:论坛游民
帖 子:94
专家分:66
注 册:2010-6-7
收藏
得分:1 
图片附件: 游客没有浏览图片的权限,请 登录注册

这是我试的
没有a的值,不懂我也很费解
2010-06-10 14:29
张丹
Rank: 2
等 级:论坛游民
帖 子:94
专家分:66
注 册:2010-6-7
收藏
得分:0 
第一个问题我也试了,最多只能输入四个,到第五个的时候就会报错
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-06-10 15:03
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:1 
顶一下吧
2010-06-11 17:32
reer
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2010-5-14
收藏
得分:1 
这是因为scanf大概会在自己分配空间吧

再次输入的时候,可能a、b的地址还是指向前面了

可以用 %p 打印地址看看
2010-06-12 17:12
kingmacrobo
Rank: 2
来 自:HUST
等 级:论坛游民
帖 子:39
专家分:49
注 册:2010-6-1
收藏
得分:1 
为什么输入aaa《回车》aaaa《回车》为什么会这样
QQ截图未命名.png (2.99 KB)

在我这儿
a的内存地址为:0x0012ff7c  b的内存地址为0x0012ff78  
也就是说,b在a前面第4个内存单元处,按LZ的对a,b的赋值会出现如下情况:
先对a输入时,内存情况为:
0x0012ff7c  0x0012ff7d  0x0012ff7f  0x0012ff80
   'a '         'a'        'a '       ‘\0’                   \\ '\0'是scanf函数为结束字符串自动加上的
在对b输入时内存情况为:
0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b  0x0012ff7c
   a            a            a          a          ‘\0’      \\ 注意这里将a的第一个字符‘a’改成了 '\0' ,即a变成了空串
所以经过以上输入,a为空串,b则为:“aaaa”,即LZ得到的结果



[ 本帖最后由 kingmacrobo 于 2010-6-12 23:23 编辑 ]
2010-06-12 22:17
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:1 
同意楼上观点

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-06-12 23:57
方廷
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:47
专家分:176
注 册:2010-6-9
收藏
得分:1 
8楼的天份不低于我
2010-06-13 00:46
快速回复:字符串问题
数据加载中...
 
   



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

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