字符串逆序输出的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:43:07
大家能帮我看看这个程序有什么问题吗?谢谢
编译没有错误,可运行不出来。
char *revstr(char *str)
{
char ch;
char *left=str;
char *start=str;
while(*str!='\0')
{
str++;
}
str--;
if(left<str)
{
ch=*str;
*str=*left;
*left=ch;
left++;
str--;
}
return start;

}

main()
{
char *p="aaabbcc";
char *out;
out=revstr(p);
printf("%s\n",out);
}

char *revstr(char *str)
{
char ch;
char *left=str;
char *start=str;
while(*str!='\0')
{
str++;
}
str--;
while(left<str)//修改成循环
{
ch=*str;
//这一句多余*str=*left;
*start=ch; //修改
start++; //修改
str--;
}
return start;

}
main()
{
char *p="aaabbcc";
char *out;
out=revstr(p);
printf("%s\n",out);
}

#include "stdio.h"
#include "string.h"
#include "malloc.h"

char *revstr(char *str)
{
int iLen = strlen(str);
char* cRet = (char*)malloc((iLen+1)*sizeof(char));
int i = 0;
for(i =0 ;i < iLen;i++){
cRet[i] = str[iLen-i-1];
}
cRet[iLen] = '\0';

return cRet;
}

void main()
{
char *p="aaabbcc";
char *out;
out = revstr(p);
printf(&q