用C语言编写函数,通过指针将一个字符串反向。

知道的 大哥哥 大姐姐 帮帮忙`~~~!!

第1个回答  推荐于2016-04-02
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>

void reverse(int nN,char* b,char *c)
{
char temp;
for(int i=0;i<(nN/2);++b,--c,++i)
{
temp=*b;
*b=*c;
*c=temp;
}
}

void printS(char *s)
{
cout<<s<<endl;
}

int main()
{
char s[100],*h,*t;
int n=0;
cout<<"Please input your words: "<<endl;
gets(s);
h=t=s;
while(*t)
{
++n;
++t;
}
--t;
reverse(n,h,t);
printS(s);
return 0;

}本回答被提问者采纳
第2个回答  2019-07-18
#include
<iostream.h>
#include
<stdio.h>
#include
<stdlib.h>
void
reverse(int
nN,char*
b,char
*c)
{
char
temp;
for(int
i=0;i<(nN/2);++b,--c,++i)
{
temp=*b;
*b=*c;
*c=temp;
}
}
void
printS(char
*s)
{
cout<<s<<endl;
}
int
main()
{
char
s[100],*h,*t;
int
n=0;
cout<<"Please
input
your
words:
"<<endl;
gets(s);
h=t=s;
while(*t)
{
++n;
++t;
}
--t;
reverse(n,h,t);
printS(s);
return
0;
}
第3个回答  2012-05-17
# include<stdio.h>
# define N 50
int main(void) {
char a[N];
char *p;
int n;
printf("Input a string of character:\n");
gets(a);
n = strlen(a);
printf("In reverse order:\n");
for (p = a + n; p >= a; p--) {
printf("%c", *p);
}
return 0;
}
第4个回答  2008-01-02
#include <stdio.h>

char* _strrev(char* str)
{
register char *p1, *p2;
p1 = p2 = str;
while(*p2++)
;
for(p2 -= 2; p1 < p2; p1++, p2--)
{
*p1 ^= *p2;
*p2 ^= *p1;
*p1 ^= *p2;
}
return str;
}

int main(void)
{
char buf[100];
scanf("%s", buf);
printf("%s\n", _strrev(buf));
return 0;
}
相似回答