我如何在C中返回一个字符数组?

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

嗯,我很难完成此操作。我实际上是想创建一个从scanf命令返回一个简单单词的函数,以将其调用到主代码中。我知道函数不能正确返回数组,但是我看过很多教程,但还不了解。用于通用目的。谢谢

#include <stdio.h>
#include <cstring>
int function () {
char word[100];
scanf("%s",&word);
return word;}
int main () {
char word2[100]= function();
}
c arrays function return function-call
1个回答
0
投票

在您的代码int function()中,此函数的返回值为int,但您想获取字符串,因此请使用char * function()

而且,scanf("%s",&word);请勿将&用于字符数组。

您的代码示例:

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

char * function () {
    char * word = malloc(sizeof(64));
    if (!word)
       return NULL;
    scanf("%s",word);
    return word;
}
int main () {
    char * word2 = function();
    printf("%s\n", word2);
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.