一个很简单的有关问题:要求字符串倒序输出!为什么就出现奇怪的有关问题,望高人解救

一个很简单的问题:要求字符串倒序输出!为什么就出现奇怪的问题,望高人解救!
#include<stdio.h>

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



------解决方案--------------------
LZ,你的问题是把下标搞错了,下标是从0开始的,所以malloc出来的size+1的空间,最后一个的下标是size;
C/C++ code

#include<stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
char string[]="Embedded Linux";
printf("The original string: %s\n",string);
char *string1;
int size,i;
size = strlen(string);
string1 = (char*)malloc(size+1);
for(i=0;i<size;i++)
string1[size-i-1] = string[i];//这里改成下,i=0是,应该对size-1的位置赋值,下标是从0开始的。
string1[size] = '\0';//这里
printf("The string afterward: %s\n",string1);
return 0;
}

------解决方案--------------------
探讨

楼上的各位大侠们 楼主是另为用了个字符串 反转的 所以还是 要 i<size 不是 size/2