gpt4 book ai didi

c - 反转字符串的程序

转载 作者:行者123 更新时间:2023-11-30 20:16:02 24 4
gpt4 key购买 nike

我是 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;
}

最佳答案

您不尊重变量范围。关于这一点的一个有用的引用,here .

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

reverse() 返回的值是一个指向堆栈值的指针,该堆栈值仅在该函数的范围内。虽然调用函数 main() 最终会得到一个有效的指针,但当 reverse() 返回时,指针所引用的信息已超出范围,因此不稳定,可能会发生变化。对于这个简单的示例,您可以按值而不是按引用返回反转的字符串。 (发回字符数组,而不是指向它们的指针。)

关于c - 反转字符串的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com