从函数返回 char 数组到 C 中的变量

问题描述 投票:0回答:1

我正在学习 C,但是当我想从函数返回字符串到主函数时遇到了一些问题。这是代码的一部分(我知道这是完全错误的,但我不知道如何让它做我想做的事)

我理解返回值(*name)只返回字符串第一个字符的位置并将其传递给main。

int main(void)
{
    char name[100] = {get_name("Name: ")};
    printf("%s\n", name);
}

char get_name(char prompt[])
{
    printf("%s", prompt);
    char name[100];
    scanf("%s", name);
    return *name;
}

我认为不可能将整个字符串返回到主函数,这就是我使用指针的原因;但是我无法再获取整个字符串了。我还检查了 main 中数组的长度,它显示 100,但其中只有一个字符,并且 name[1] 为空。

有人可以向我解释一下为什么会这样以及如何解决它吗?我到处寻找但找不到线索。

c function pointers
1个回答
0
投票

将 char 数组从函数返回到 C 中的变量
当我想从函数返回字符串时

在 C 中,数组无法返回。可以返回指向数组的指针。

在 C 中,字符串无法返回。可以返回指向string的指针。

© www.soinside.com 2019 - 2024. All rights reserved.