要求输入的字符串反向输出

xieshen947 2010-09-30 02:02:14
如:abc123输出321cba
123输出321
abc输出cba


回答的都会有分.......

才学别笑 呵!
...全文
812 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
Solomon1588 2012-09-08
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
char str[100];
char *p;
int len;

cout <<"请输入字符串:"<<endl;
cin>>str;

len=strlen(str);
p = str + len -1;
for( ;len; p--,len--)
cout<<*p ;



return 0;
}
lovestefanie 2010-10-01
  • 打赏
  • 举报
回复
求长度
然后反着输出就完了
keanoz 2010-10-01
  • 打赏
  • 举报
回复
int main()
{
int len=0;
int i=0;
char *str;
printf("input a string:\n");
gets(str);
len=strlen(str);
for(i=len-1;i>=0;i--)
{
printf("%c",*(str+i));
}
printf("\n");
system("pause");
return 0;
}
shexinwei 2010-10-01
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
char *strSrc = "www.csdn.net";
cout<<"src:"<<strSrc<<endl;
int length = strlen(strSrc);
char *result = new char[length + 1];
result[length] = 0;
for(int i = length-1;i >= 0;i--)
{
result[i] = *(strSrc++);
}
cout<<"result:"<<result<<endl;
delete []result;
system("pause");
return 1;
}


VS2008调试结果:

src:www.csdn.net
result:ten.ndsc.www
请按任意键继续. . .
xieshen947 2010-10-01
  • 打赏
  • 举报
回复
结贴了.分太少 再不结就不够了 ...汗 //
千杯不醉-sen 2010-10-01
  • 打赏
  • 举报
回复
其实这类题没难度,就看你咋么想了。我上面提供的3种方法均可实现逆序功能。
下面给你一种忒二的方法:

#include <stdio.h>

void main(char args)
{
if( (args = getchar()) != '\n')
main(args);
putchar(args);
}
千杯不醉-sen 2010-10-01
  • 打赏
  • 举报
回复

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

void reverse(char * strSrc,int len)
{
while(len--) putchar(*strSrc--);
putchar(10);
}

void main()
{
char str[] = "a bc 123 a45s";
int len = strlen(str);

reverse(str+len-1,len);
}


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

void reverse(char * strSrc,int len)
{
putchar(*strSrc);
if(len) reverse(--strSrc,--len);
}
void main()
{
char str[] = "a bc 123 a45s";
int len = strlen(str);

reverse(str+len-1,len);
putchar(10);
}


void reverse(char charSrc)
{
charSrc = getchar();
if(charSrc != '\n') reverse(charSrc);
else printf("逆序为:");
putchar(charSrc);
}

void main()
{
char ch = 0;
puts("原序为:");
reverse(ch);
putchar(10);
}
Thirty 2010-10-01
  • 打赏
  • 举报
回复


#include <stdio.h>
#include <string.h>
int main()
{
char *str="abc123";
char *p=str+strlen(str)-1;

while(p!=str)
printf("%c",*p--);

return 0;
}

楼主记得给分哦
lile358190 2010-09-30
  • 打赏
  • 举报
回复
用栈写,先进后出!就反着输出了!
timebomb 2010-09-30
  • 打赏
  • 举报
回复
多写了一个括弧。
timebomb 2010-09-30
  • 打赏
  • 举报
回复
void prin(char w[])
{
char *wPtr = w;

if((*wPtr != '\0')
prin(*wPtr);

printf("%c", *wPtr);
}


想用递归,不知道这样行不,欢迎意见!
martin304201 2010-09-30
  • 打赏
  • 举报
回复
void f_Reverse()
{
char str[]="abc";
char des[4];
int len=strlen(str);

for(int i=0;i<len;i++)
{
des[i]=str[len-1-i];
}
des[i]='\0';
printf(des);
printf("\n");


}
bobo364 2010-09-30
  • 打赏
  • 举报
回复
看下面当中的反转字符串
#include<stdio.h>
#include<malloc.h>


int len(char*);
char* reverseStr(char*);
char* deleteSpace(char*);
void freeCharPtr(char*);

//求长度
int len(char* s)
{
int i = 0;
if(s == 0)
{
return 0;
}
while(*s++)
{
i++;
}
return i;
}

//翻转字符串
char* reverseStr(char* s)
{
int strLen = len(s), i = 0;
char* sTemp = (char*)malloc(strLen);
for(i = 0; i < strLen; i++)
{
sTemp[i] = s[strLen-1-i];
}
sTemp[i] = '\0';
return sTemp;
}

//删除串中的空格
char* deleteSpace(char* s)
{
int strLen=len(s), i=0;
char* sTemp=(char*)malloc(strLen);
while(*s)
{
if(*s != ' ')
{
sTemp[i++] = *s;
}
s++;
}
sTemp[i] = '\0';
return sTemp;
}

//释放
void freeCharPtr(char* p)
{
free(p);
p = 0;
}

int main()
{


char s[] = "1234 56 78p";
char* s1 = reverseStr(s);
char* s2 = deleteSpace(s);
char* s3=reverseStr(s2);
printf("%s\n",s);
printf("%s\n",s1);
printf("%s\n",s2);
printf("%s\n",s3);

freeCharPtr(s1);
freeCharPtr(s2);
freeCharPtr(s3);
system("pause");
return 0;
}
mao_pu_hua 2010-09-30
  • 打赏
  • 举报
回复
int main (void)
{
char *a = "abc123";
char *p = a;

while (*p)
{
p++;
}

while (p != a)
{
printf ("%c", *p);
}

return 0;
}
乐CC 2010-09-30
  • 打赏
  • 举报
回复
int n = strlen(a);
for(int i = n,a+=n; i>0 ; i--)
printf("%c",a--)
积木 2010-09-30
  • 打赏
  • 举报
回复
楼上的确实写的有问题,C可没有string这个简单类型给你用。应该是

char a[] = "abc";

[code]
而且循环可以
[code=C/C++]
for( int i = n-1;i>=0;i--){
cout<<a[i];
}


就好
yxhmm 2010-09-30
  • 打赏
  • 举报
回复

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;


int main()
{
string str;
cin >> str;
reverse(str.begin(), str.end());
cout << str;
return 0;
}
东大坡居士 2010-09-30
  • 打赏
  • 举报
回复
还能接到分不~~~~~
imvman 2010-09-30
  • 打赏
  • 举报
回复
堆栈。
拜倫 2010-09-30
  • 打赏
  • 举报
回复
堆栈就够了
加载更多回复(10)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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