C 反转字符串的程序
我是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 :
#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)
。