如何在C编程中使返回char函数?

时间:2018-09-03 00:00:17

标签: 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;
}

1 个答案:

答案 0 :(得分:2)

strcat()的声明返回一个指向char(char *)的指针。因此,您的函数screen()也必须如此。

另一件事是,您无法执行char b[] = "Hallo";,因为字符数组b仅足以处理Hallo。您需要大于Hallo的位置,其余部分将填充0x00NUL。像这样:

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;
}