gpt4 book ai didi

c - 在 C 中返回 char[] 值

转载 作者:行者123 更新时间:2023-11-30 21:13:09 24 4
gpt4 key购买 nike

我试图了解如何在 c 中返回字符串。我尝试了不同的方法但没能做到。您可以编辑这段代码吗?

char dublicate(char str[])
{
return str[20];
}

int main()
{
char str[20];
scanf("%s", &str);
printf("%s", dublicate(str));
return 0;
}

最佳答案

你可以做这样的事情。 string_dupe 创建从 scanf 发送的字符串的副本,该副本必须使用 malloc()strdup() 来在堆上为其分配空间。然后,指向 duplicate 中第一个元素的指针返回到 main 并打印出来。然后执行free()来释放堆上为字符串分配的内存。

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

#define SIZE 20

char *string_dupe(char *string);

int
main(void) {
char str[SIZE];
char *strcopy = NULL;

printf("Enter string: ");
scanf("%s", str);

strcopy = string_dupe(str);

printf("\nYour copied string: %s", strcopy);

free(strcopy);

return 0;
}

char
*string_dupe(char *string) {
char *duplicate = NULL;

if ((duplicate = malloc(strlen(string)+1)) == NULL) {
fprintf(stderr, "Memory not allocated\n");
exit(EXIT_FAILURE);
}

strcpy(duplicate, string);

return duplicate;
}

关于c - 在 C 中返回 char[] 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190539/

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