gpt4 book ai didi

c - 为什么在 c 中打印字符串数组不提供相同的输出?

转载 作者:行者123 更新时间:2023-12-03 00:28:25 25 4
gpt4 key购买 nike

当最后一个字符与数组下一个元素的第一个字符匹配时,给出最后一个字符的输出将重复。原因是什么以及应该如何解决?

Left side is program right side is output

#include <stdio.h>

int main(void) {
int i ;

char fact_char[13][2] = {"I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"};

for(i = 0; i < 13; i++){
printf("%s\n", fact_char[i]);
}

return 0;
}

输出


I
IVV
V
IXX
X
XLL
L
XCC
C
CDD
D
CMM
M

最佳答案

c 中的字符串以 null 结尾。为了表示“IV”,实际上是在内存中存储“I”、“V”和“\0”。当您打印两个字符的字符串时, printf 将继续写入,直到在内存中找到下一个空终止符,该终止符恰好位于下一个(单个字符)字符串中。

要解决这个问题,只需做到

fact_char[13][3]

关于c - 为什么在 c 中打印字符串数组不提供相同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60345768/

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