c - C语言中函数的返回值是字符串

标签 c

我用 C 编写了一些带有两个函数的代码。

一个函数查找一个单词(字符组),然后将其保存到一个字符串中。另一个函数显示字符串内部的内容。我找不到将返回值保存到字符串的正确方法。

这是我的代码:

#include <stdio.h>

char SchrijfString(void);
void LeesString(char);

int main(void)
{
    char x[60];
    x = SchrijfString(x);
    LeesString(x);
    return 0;
}

char SchrijfString(char x[])
{
    printf("geef een string in: \n");
    gets(x);
    return x;
}

void LeesString(char x[])
{
    printf("In de string zit:\n %s", x);
    getchar();
}

最佳答案

gets 函数已使用用户指定的字符串填充 x,因此无需从 SchrijfString 返回任何内容或进行赋值任何 x 回到 main.您的函数原型(prototype)与定义不匹配。它们必须相同。

此外,gets 已被弃用,因为它不安全。请改用 fgets

void SchrijfString(char x[], int len);
void  LeesString(char x[]);

int main(void)
{
    char x[60];
    SchrijfString(x, sizeof(x));
    LeesString(x);
    return 0;
}

void SchrijfString(char x[], int len)
{
    printf("geef een string in: \n");
    fgets(x, len, stdin);
}

关于c - C语言中函数的返回值是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46937084/

相关文章:

c - 解析 mac 地址和移动 temp 时检查 strtol() 时出错。指针向上

c++ - 如何获取pam_ldap中当前的PAM用户?

c - Gtk+ 3 笔记本 : how to add pages dynamically?

c - 编写汇编函数时序言和结语是强制性的吗?

c - 64 位 CPU 上不同整数大小的效率

c - 如何从日志文件获取数据插入 gtk 列表存储/ TreeView ?

c - 为什么在 C 中向后迭代数组比向前迭代快

c - 将 typedef 从 header 传递到源 - C

c - 当 CPU 需要大于 0xC0000000 的地址时,如何执行地址转换(virt->phy)?

c - 分离链表中的偶数和奇数节点