标题:字符串数组丢失。
只看楼主
huruigege
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-11-6
 问题点数:0 回复次数:15 
字符串数组丢失。
#include "stdio.h"
# include "math.h"
main()
{
 char a[]="I am stupid.",b[12];
 int i;
 printf("%s",a);
 printf("\n");
 for(i=0;i<12;i++)b[i]=a[i];
 b[12]=0;
 printf("%s",b);
 printf("\n");
 printf("%s",a);
}

在第一个 printf("%s",a);输出的是正确的,但是第二个 printf("%s",a);输出就变了,为什么?中间并没有对a进行任何改变啊。奇怪。请教。
搜索更多相关主题的帖子: 字符 include printf math main 
2007-12-04 10:33
eblis
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-27
得分:0 
不知道你的编译什么问题..我这里没错...

2007-12-04 10:38
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
得分:0 
注意一个问题:
b[12]=0;  //如此的赋值造成下标越界
2007-12-04 10:55
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
得分:0 
敢问LZ,你的b[12]=0;是干什么的?
VC编译通过,
有b[12]=0;不能显示
把b[12]=0;注释掉后,正确显示
改成b[11],正常显示

[[italic] 本帖最后由 万兽无缰 于 2007-12-4 11:06 编辑 [/italic]]

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-12-04 10:56
huruigege
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-11-6
得分:0 
我也怀疑我的编译器。我用的是VC++ 6.0 (SP6)。
有b[12]=0,系统才能知道该字符串已经结束。我开始的时候也没有这句,发现显示异常。加上这句就好了,估计是我的编译器有问题。
2007-12-04 11:29
flyaway57
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-3-28
得分:0 
不懂LZ要说什么,如果你想加的话也应该是b[12]='\0',即使这样你的b[12]就已经越界了,程序小点没什么事,大一点的话就要崩溃
2007-12-04 14:08
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
得分:0 
6楼的,b[12]='\0',    \0的ASCII码就是0啊,字符可以用其ASCII码来代替的

[[italic] 本帖最后由 kidd2005 于 2007-12-4 15:30 编辑 [/italic]]

潜心苦C,却发觉百C不得其解啊~
2007-12-04 15:24
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
得分:0 
不过LZ定义了B[12]后,B的下标最大也应该只是11吧??

潜心苦C,却发觉百C不得其解啊~
2007-12-04 15:34
mndren
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-11-17
得分:0 
a[0]的值应该在b[11]后面 ,你一个b[12]=0 ,后面不用说了

不知道楼主加个b[12]=0  干什么用?不解!
2007-12-05 16:08
夜礼服假面
Rank: 1
等 级:禁止访问
帖 子:92
专家分:0
注 册:2007-11-26
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-12-05 16:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-190239-1-1.html




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

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