gpt4 book ai didi

函数可以返回字符串作为它们的输出吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:05 25 4
gpt4 key购买 nike

我正在尝试实现一个代码,该代码使用一个名为 reverse 的函数,该函数接受一个字符串并返回一个与旧字符串相反的新字符串。据我所知,该函数本身可以正常工作——即我测试了是否 reversed string: new string 具有正确的值并且确实如此。但是,当我尝试在它返回到主函数后打印这个反转的字符串时,我得到了一个错误的访问代码。有人有什么想法吗?这是我的代码:

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

char reverse( char *string) {
char newstring[50]; //reversed string to be returned to the main function
int size = strlen(string);
int index = 0;
for (index = 0 ; index < size ; index++) {
newstring[index] = *(string+size-index-1); //creates a new string that is the reverse of the old string
}
return newstring; //reurns the new string
}


int main(int argc, const char * argv[]) {

char string[50];
printf("Please enter a string you wish to reverse:\n");
scanf("%49s", string); // user enters a string of maximum length 50
int size = strlen(string);
char *reverse_string;
reverse_string = reverse(string); // sets a pointer called reverse_string to the pointer returned by the reverse function
for ( int index = 0 ; index < size ; index++) {
printf("%c", *(reverse_string+index));// prints the reversed string value by value
}
return 0;
}

最佳答案

您需要更改函数的声明,以便它返回 char* 而不仅仅是一个 char。在您的主循环中,您当前正在将一个 char 分配给 reverse_string 而不是 char*。

关于函数可以返回字符串作为它们的输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308559/

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