不计算字符串长度,反转字符串

EnableWindowEx 2008-04-26 04:12:12
不计算字符串长度,反转字符串。请问应该如何做?
...全文
140 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
等待牛人来答.
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.
xiaoc10 2008-04-29
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <conio.h>
void reverse(char* str);
int main()
{
char *str1 = "abc";
reverse(str1);
getch();
return 0;
}

void reverse(char* str)
{
if( *str == '\0' )
return;
reverse(str + 1);
printf("%c", *str);
}
zhangandjun 2008-04-29
  • 打赏
  • 举报
回复
栈先进后出,可以哦!!

双向链表也可以的哦!!
太乙 2008-04-28
  • 打赏
  • 举报
回复
用堆栈怎么样?我感觉行!
Torch009 2008-04-27
  • 打赏
  • 举报
回复
3 + 4楼的方法
freeCodeSunny 2008-04-27
  • 打赏
  • 举报
回复
但是计算字符串的长度很容易啊!
如果不要计算长度也可以啊
string str;
cin>>str;
reverse(str.begin(),str.end()); 这样就将字符串给反转了.
如果其中有空格还可以这样
getline(cin,str);
reverse(str.begin(),str.end());
rushman 2008-04-26
  • 打赏
  • 举报
回复
void reverse(char* str){
if(*str)return;
reverse(str + 1);
putc(*str, stdout);
}

Or
static char* forrev = NULL;
void reverse(char* str){
if(!*str)return;

reverse(str + 1);
if(str > forrev){ // 交换
*str ^= *forrev ^= *str ^= *forrev;
forrev++;
}
}

void main(void){
char str[] = "abcdefghijklmnopqrstuvwxyz";
forrev = str;
reverse(str);
printf("\n%s\n", str);
}

medie2005 2008-04-26
  • 打赏
  • 举报
回复
char str[]="jlfajlfjalkfjsa";
char *p=str, *q=p;
while( (*p)!='\0' ) ++p;
--p;
while( q<p ) iter_swap( q++, p-- );
njurain 2008-04-26
  • 打赏
  • 举报
回复
双向链表也可以
很原始的方法
aceattacker 2008-04-26
  • 打赏
  • 举报
回复
利用冒泡排序,如字串sttr.首先将s逐位移至最后,测试停止条件是要移的下一位不为0.
sttr
tstr
ttsr
ttrs

ttrs
ttrs
trts

trts
rtts





33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧