读书人

请大家伙儿看看不懂啊

发布时间: 2012-11-08 08:48:12 作者: rapoo

请大家看看,不懂啊!
#include "stdio.h"
#include "string.h"
void addspace(char x[]);

void main()
{
char a[100];
printf("输入4个数字:\n");
scanf("%s",&a);
addspace(a);
printf("结果输出:%s\n",a);

}
void addspace(char x[])
{
int i;
i=strlen(x);
for(i=strlen(x)-1;i>0;i--)
{
x[2*i]=x[i];
x[2*i-1]=' ';
}

}
输入4个数字,每个数字之间插入一个空格。
我写的如上这一段,正常输出后紧跟着就输出一堆乱七八糟的字符,不知道哪里错了啊!,比如输入2222,i的值是4
x[6]==2,x[5]==' ',x[4]==2,x[3]==' ',x[2]==6,x[1]==' ',x[0]依然是2,原样输出,
感觉没错,为什么结果是2 2 2 2烫烫烫烫烫烫烫烫烫烫烫烫,这个烫哪里来的

[解决办法]
字符串数组最后加上'\0';或者用字符指针,先分配内存。

读书人网 >C++

热点推荐