用指针实现函数str_reverse(char*str),完成字符串的反序。

如题所述

#include <stdio.h>
#include <string.h>
void str_reverse(char *str)
{
char *p,*q,tmp;
int len;
p=str;  //指向首元素
len=strlen(str);
q=str+len-1; //指向末元素
while(p!=q)
{
tmp=*p;
*p=*q;
*q=tmp;
p++;
q--;
}
}
int main()
{
    char str[256];
scanf("%s",str);
str_reverse(str);
printf("after reverse:%s\n",str);
    return 0;
}

示例运行结果:

abcefgh

after reverse:hgfecba

追问

有一个错误

追答

什么错误?

追问

运行不出来

追答

我那示例运行结果就是运行后的结果啊,怎么会运行不出来呢

追问

我这边就是运行不出来,我也不知道哪里错了它指示第30行出错了

追答

我这代码都没30行啊

追问

还是运行不出来

追答

你运行的是我的代码吗,你用的是什么编译器,怎么可能呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22
char *str_reverse(char*str)
{
    char *p, *q, c;
    p = q = str;
    while(*p) p++;
    p--;
    while(q<p)
    {
        c=*p;
        *p=*q;
        *q=c;
    }
    return str;
}

追问

可以输出来嘛

追答#include <stdio.h>
char *str_reverse(char*str)
{
    char *p, *q, c;
    p = q = str;
    while(*p) p++;
    p--;
    while(q<p)
    {
        c=*p;
        *p=*q;
        *q=c;
    }
    return str;
}
int main()
{
    char s[100];
    scanf("%s",s);
    printf("%s\n", str_reverse(s));
    
    return 0;
}

本回答被提问者和网友采纳
第2个回答  2019-02-22
“qwe”排成“ewq”是不是叫逆序排列啊,如果是,则函数定义如下:
void
reverse_str(char
*p){
int
len=strlen(p);
char
*q=p+len-1,t;
int
i;
for(i=0;
i
评论
0
0
0
加载更多