读书人

一个很简单的有关问题:要求字符串倒序

发布时间: 2012-05-28 17:59:54 作者: rapoo

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

读书人网 >C语言

热点推荐