一个很简单的问题:要求字符串倒序输出!为什么就出现奇怪的问题,望高人解救!
#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;
#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;}
[解决办法]