C简单字符串程序无法编译

标签 c string strlen

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

char Jones(char, char);

int main() {
    char name[]="Andrew";
    char surname[]="Jones";
    char result[80];
    result=Jones(name, surname);
    puts(result);
    return 0;
}

char Jones(char name, char surname)
{
    char result[80];
    int length;
    length = strlen(surname);
    for (int i=0; i<50; i++) 
    {
        result[length+i] = name[i];
    }
    return result;
}

程序无法编译,我不知道为什么。它应该读取两个字符串并交换它们的位置。它应该显示例如。 “琼斯·安德鲁”。

最佳答案

这里有一个问题:

char name[]="Andrew";
char surname[]="Jones";
char result[80];
wynik=Jones(name, surname);

这会使用字符数组(将衰减为字符指针)调用 Jones(),但该函数被声明为仅接受单个字符。

您应该更改函数以采用char *name, char *surname,因为它确实似乎需要字符串。

此外,您无法像在 Jones() 中那样返回字符数组,您需要阅读大量有关如何在 C 中使用字符串的内容。

此外,wynik 看起来未声明,这也会导致构建失败。

关于C简单字符串程序无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154687/

相关文章:

c - 枚举数组时遇到问题

C - 在函数中写入字符串。错误 :expected expression

javascript - JS Regex 分别替换左右括号

C size_t 不在 printf 中打印

C: sprintf 通过 strlen 通向 SIGSEGV 核心

c++ - 从函数 BY VALUE 返回数组,当返回结构时会发生什么?

C - 在终端中创建动画 - 自动更新二维数组

c - 如何查看系统是否支持 "Monotonic Clock"?

c# - 如何将 C# 原型(prototype)编写为 P/Invoke 一个以 char* 作为参数并返回其值的函数

没有 strlen() 的 PHP 字符串长度