第1个回答 2013-05-15
看到过一个比较经典(递归方式)的:
#include<stdio.h>
void fun()
{
char a;
if((a=getchar())!='\n')
fun();
putchar(a);
}
main()
{
fun();
getchar();
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/024f78f0f736afc3d2bc462fb219ebc4b64512c3?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
第2个回答 2013-05-15
//c++的
#include <iostream>
#include <string>
using namespace std;
void swap_char(char& a, char& b);
int main(){
string str;
cout << "请输入一个字符串,我将为这个字符串颠倒:"
getline(cin,str);
for(int i = 0; i <= ( str.size() / 2); i++)
{
swap_char(str[i], str[str.size() - i];
}
cout << str;
return 0; }
void swap_char(char& a, char& b) {
if(a != b)
{
char temp = a;
a = b;
b = temp;}
return; }
//c++版本,支持中文
#include <iostream>
#include <string>
using namespace std;
void swap_wchar(wchar_t& a, wchar_t& b);
int main(){
wstring str;
wcout << L"请输入一个字符串,我将为这个字符串颠倒:"
getline(wcin,str);
for(int i = 0; i <= ( str.size() / 2); i++)
{
swap_wchar(str[i], str[str.size() - i];
}
wcout << str;
return 0; }
void swap_wchar(wchar_t& a, wchar_t& b) {
if(a != b)
{
wchar_t temp = a;
a = b;
b = temp;}
return; }本回答被提问者采纳
第3个回答 2013-05-15
#include <stdio.h>
#include <string.h>
void fun(char *p)
{
int len=strlen(p),i=0,j=len-1,k=len/2; //len是数组长度
char temp;
while(k--) //把第一个和倒数第一个交换,第二个和倒数第二个交换,以此类推
{
temp = p[i];
p[i++] = p[j];
p[j--] = temp;
}
}
int main()
{
char a[100];
scanf("%s",a);
fun(a);
printf("%s\n",a);
}
第4个回答 2013-05-15
#include "stdio.h"
#include "string.h"
main()
{ char str[80],*p;
int a;
printf("输入字符串:");
gets(str);
printf("反顺序是:");
a=strlen(str)-1;
p=&str[a];
for(;a>=0;a--)printf("%c",*p--); printf("\n");
}