c语言 - 打印字母组合时 NULL '' 的不稳定行为



我使用此代码的目的是打印字母字母之间的所有可能组合,**包括单个字母。 - 破解(

我包括使用''的使用,以获取单个字母。一切都很好,直到它开始使用大写字母,然后每两个循环一次跳过''。结果是我缺少一半的单个大写字母,我不知道为什么会这样行动。

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

blockquote fz g ga gb gc gc gc gd ge gg gg gg gg g g g g g g g g g g g g g g g gn gn go gp gp gp gq gr gs gs gs gs g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g gb gb gc gc gd gd gd gdge gf gg gh g g g g gl gm gn go gp gp gq gr gs gs g g g g g g g g g g g g g g g g g g g g g g g g z h ha hb hb hb hd He hf hg HH ia ib ic

但是过了一会儿,它开始跳过字母(它打印'w'和'y'但不是'x'(

blockquote vz w wa wb wc wc wd我们wf wg wg wi wi wi wi wk wk wk wl wl wm wn wn w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w wbXO XP XQ XR XS XS XS XS XV XV XX XX XZ XZ XA XA XA XB XC XC XD XE XE XF XG XG XH XH XH XH XH XK XK XK XL XM XM XM XM XP XP XQ XS XS XS XS XS XU XB/strong> 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 = '';
        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] = { '' };

那么,您无需第二次明确设置NULL终端器的内部循环。

好的,所以我继续前进了课程的下一周,他们介绍了我用来尝试的IDE。正如@Weather Vane指出的那样,这次它可以很好地工作。因此,我认为代码不是完全错误的,只是以某种方式我正在编译和运行该程序的沙箱可能是这里的问题。感谢所有发布的人!

相关内容

  • 没有找到相关文章