gpt4 book ai didi

c - 打印字母组合时出现 NULL '\0' 的不稳定行为

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:31 25 4
gpt4 key购买 nike

我对这段代码的意图是打印字母表中字母之间所有可能的组合,**包括单个字母。**我从 CS50x 类(class)(第 2 周 - 破解)中编写了程序的这一部分

我包括使用 '\0' 以获得单个字母。一切正常,直到它开始处理大写字母,之后它将每两个循环跳过一次 '\0' 。结果是我丢失了一半的单个大写字母,我不知道为什么会这样。

这是我得到的结果的摘录(这部分是正确的,注意单个字母 'g'、'h'、'i' 都被打印出来):

Blockquote fZ g ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz gA gB gC gD gE gF gG gH gI gJ gK gL gM gN gO gP gQ gR gS gT gU gV gW gX gY gZ h ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz hA hB hC hD hE hF hG hH hI hJ hK hL hM hN hO hP hQ hR hS hT hU hV hW hX hY hZ i ia ib ic

但过了一会儿它开始跳过字母(它打印'W'和'Y'但不打印'X')

Blockquote VZ W Wa Wb Wc Wd We Wf Wg Wh Wi Wj Wk Wl Wm Wn Wo Wp Wq Wr Ws Wt Wu Wv Ww Wx Wy Wz WA WB WC WD WE WF WG WH WI WJ WK WL WM WN WO WP WQ WR WS WT WU WV WW WX WY WZ Xa Xb Xc Xd Xe Xf Xg Xh Xi Xj Xk Xl Xm Xn Xo Xp Xq Xr Xs Xt Xu Xv Xw Xx Xy Xz XA XB XC XD XE XF XG XH XI XJ XK XL XM XN XO XP XQ XR XS XT XU XV XW XX XY XZ Y Ya

这是原始代码:

int main(void)
{
char abc[52] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char xyz[3];
char null = '\0';

for (int i = 0; i < 52; i++)
{
xyz[0] = abc[i];
xyz[1] = null;
printf("%s ", xyz);
for (int j = 0; j < 52; j++)
{
xyz[1] = abc[j];
printf("%s ", xyz);
}
}

printf("\n");
}'''

最佳答案

xyz[1] = abc[j];

您覆盖了刚刚设置的空终止符。

最好将整个数组初始化为零(空终止符)

char xyz[3] = { '\0' };

那么您就不需要为内部循环再次显式设置空终止符。

关于c - 打印字母组合时出现 NULL '\0' 的不稳定行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56925615/

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