首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串拼接有关问题

2012-04-15 
字符串拼接问题今天无聊的时候写个字符串拼接的程序。结果发现了点问题。#includestdio.hint main(){int i

字符串拼接问题
今天无聊的时候写个字符串拼接的程序。
结果发现了点问题。
#include<stdio.h>
int main()
{
int i=0;
char a[5],b[5],d[5],c[10],*p;
printf("please input a:");
scanf("%s",a);
strcpy(d,a);
setbuf(stdin,NULL);
printf("please input b:");
scanf("%s",b);
//a[0]=a[-10];这2个注释都可以解决问题,可我不晓得为什么a[0]会被改变了
//p=d;
p=a;
while(i!=5){
c[i]=*(p+i);
i++;
}
p=b;
i=0;
while(i!=5){
c[5+i]=*(p+i);
i++;
}
i=0;
while(i!=10){
printf("%c",c[i]);
i++;
}
return 0;
}
a和b分别输入hello和kitty
gdb的时候发现a[0]被改成\000了,
不解。
求解

[解决办法]
a[-10]是未定义行为,里面的值理论上是随机的..
你都执行了赋值语句a[0]=a[-10];a[0]肯定会改变啊

热点排行