首页 > 解决方案 > 如何在c编程中制作返回字符函数?

问题描述

我正在尝试做一些简单的 c 编程来返回 char 值。程序运行没有错误,但是没有出现预期字符串的输出。我期望它会Halloworld在我运行它时返回。

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

char screen(char c[]);

int main(){

    char b[] = "Hallo";
    //screen(b);
    printf("%s",screen(b));
}

char screen(char c[]){

    strcat(c, "world");
    return c;
}

标签: c

解决方案


的声明strcat()返回一个指向 char ( char *) 的指针。所以你的功能screen()也必须。

另一件事是,你不能这样做char b[] = "Hallo";,因为这样字符数组b就只有大到可以处理了Hallo。您需要它大于Hallo,其余部分将填充0x00, 或NUL。像这样:

48 61 6C 6C 6F 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00

然后在你结束strcat()字符之后world

48 61 6C 6C 6F 20 77 6F 72 6C 64 00 00 00 00 00 00 00 00 00

当传递给 时,第一个剩余的0x00将充当空终止符printf()

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

char* screen(char c[])
{
    strcat(c, "world");
    return c;
}

int main()
{
    char b[20] = "Hallo ";
    screen(b);
    printf("%s",b);

    return 0;
}

推荐阅读