C 反转字符串的程序

C 反转字符串的程序,c,C,我是C语言的初学者。我正在尝试这个程序来反转字符串。有人帮忙吗?有什么问题吗 #include<stdio.h> #include<string.h> char *reverse(char *); void main() { char str[]="kundan"; int len=strlen(str); char *ptr; ptr=reverse(str); printf("the reversed string is :

我是C语言的初学者。我正在尝试这个程序来反转字符串。有人帮忙吗?有什么问题吗

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

char *reverse(char *);

void main()
{
    char str[]="kundan";
    int len=strlen(str);
    char *ptr;
    ptr=reverse(str);
    printf("the reversed string is :%s",ptr);
}

char *reverse(str)
{
    char *rtr=str;
    char qtr[10];

    for(int i=len-1;i<=0;i--)
    {
        qtr=rtr+i;
        qtr++;
    }
    return qtr;
}
#包括
#包括
字符*反向(字符*);
void main()
{
char str[]=“昆丹”;
int len=strlen(str);
char*ptr;
ptr=反向(str);
printf(“反向字符串为:%s”,ptr);
}
字符*反向(str)
{
char*rtr=str;
charqtr[10];

对于(int i=len-1;i您没有考虑变量
范围
。关于这一点的一个有用参考

例如,在
reverse()
中,您在
For
循环中引用
len
。但是,
len
是在
main
中定义的,因此对
reverse()
不可用(这是否编译?)


reverse()
返回的值是指向堆栈值的指针,该堆栈值仅在该函数的作用域内。虽然调用函数
main()
将以有效指针结束,但当
reverse()时,指针引用的信息已退出作用域
返回,因此是易失的,可能会发生更改。对于这个简单的示例,您可以通过值而不是引用返回反转的字符串。(发回字符数组,而不是指向它们的指针。)

您做了什么类型的故障排除?您在尝试编译和/或运行它时看到了什么(int i=len-1;i>=0;i--)另外,
qtr
是一个数组,你不能写
qtr++
。伙计,至少告诉我们你编译和运行它时得到了什么。当你的全部目标是反转一个字符串,只需做一个strlen并打印它时,为什么你还要处理指针呢backwards@KundanNegi-如果您仍有问题,请更新您的原始帖子wi更新你的最新版本的代码,并让我知道你的立场(即,你看到了什么样的问题)。不要只发布你的代码并说“为我解决这个问题”,发布你的代码并说你为解决问题做了什么,以及你遇到了什么困难和需要帮助。当你回复时,一定要以“@phonetagger”开始你的评论所以我知道你回复了我。我编译了它,它说反向函数参数不正确。你已经正向声明了
reverse
(又名prototype),但是实际声明与它不匹配-事实上,它没有给出变量的类型。你需要
char*reverse(char*str)