gpt4 book ai didi

c - 字符串输出不符合预期

转载 作者:太空狗 更新时间:2023-10-29 16:06:27 26 4
gpt4 key购买 nike

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

int main (int argc, char *argv[]) {
char hello[5];
hello [0] = 'H';
hello [1] = 'e';
hello [2] = 'l';
hello [3] = 'l';
hello [4] = 'o';

char world[5];
world [0] = 'W';
world [1] = 'o';
world [2] = 'r';
world [3] = 'l';
world [4] = 'd';

printf ("%s %s!\n", hello, world);
return EXIT_SUCCESS;
}

当我运行上面的代码时,我得到:

Hello WorldHello!

有人可以解释为什么我的输出要么重复单词,要么打印出奇怪的数字和字母?是因为我没有包含 '\0' 吗?

最佳答案

C 中的字符串需要以 NUL('\0')终止。您拥有的是没有 NUL 终止符的 char 数组,因此不是字符串。

尝试以下操作。双引号产生字符串(自动添加 NUL 终止符)。

const char *hello = "Hello";
const char *world = "World";

或者您最初单独设置每个字符的方法,在这种情况下您需要显式设置 NUL 终止符。

char hello[6];
hello [0] = 'H';
hello [1] = 'e';
hello [2] = 'l';
hello [3] = 'l';
hello [4] = 'o';
hello [5] = '\0';

char world[6];
world [0] = 'W';
world [1] = 'o';
world [2] = 'r';
world [3] = 'l';
world [4] = 'd';
world [5] = '\0';

关于c - 字符串输出不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com