这个程序哪里错了啊?求教

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:22:22
编译没错,不过要倒叙输出字符串的时候有一个字母是乱码,怎么解决呢?
字符串是Embedded Linux
可运行结果倒序输出的是: 咯uniL deddebmE 茸茸茸茸茸?
怎么解决呢?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int display1(char *string);
int display2(char *string);

int main()
{
char string[] = "Embedded Linux";
display1(string);
display2(string);
}
int display1(char *string)
{
printf("The original string is %s \n",string);
return 0;
}
int display2(char *string1)
{
char *string2;
int size,i;
size = strlen(string1);
string2 = (char*)malloc(size+1);
for(i=0;i<size;i++)
string2[size-i]=string1[i];
string2[size+1] = ' ';
printf("The string afterward is %s \n",string2);
return 0;
}

int display2(char *string1)
{
char *string2;
int size,i;
size = strlen(string1);
string2 = (char*)malloc(size+1);
/* 数组的下标从0至字串长度减1 */
for(i=0;i<size;i++)
string2[size-1-i]=string1[i];
string2[size] = '\0';
printf("The string afterward is %s \n",string2);
free(string2);
return 0;
}