C语言中的初学者 - 在cyklus中初始化后,字符串数组丢失了内容

时间:2018-03-21 19:03:40

标签: c arrays

我正在尝试从2个字符串(等级,颜色)制作每个代表扑克牌的一张牌的字符串数组。如果我在分配后立即尝试打印卡,那么没关系,但如果我在所有作业之后尝试打印,则没有任何事情发生。

我的"代码":

int main(void)
{
    char rank[] = "23456789TJQKA";
    char color[] = "cdhs";
    char deck[52][3];
    int k = 0;

    for (int i = 0; i < 13; i++) {
        for(int j = 0; j < 4; j++) {
            deck[k][0] = rank[i];
            deck[k][1] = color[j];
            deck[k][2] = 0;
            k++;
            printf("%s\n",deck[k-1]);    // this print works
        }
    }

    printf("%s\n",deck[0]);    //this does nothing (even if I change index)


    //-------------------------- here I am trying make all possible pairs but deck is now empty :(

    k = 0;
    char allPairs[1327][5];
    for (int i = 0; i < 51; i++) {
        for (int j = 0; j < 52; j++) { //**edit** - thanks ;)
            allPairs[k][0] = deck[i][0];
            allPairs[k][1] = deck[i][1];
            allPairs[k][2] = deck[j][0];
            allPairs[k][3] = deck[j][1];
            allPairs[k][4] = 0;
            k++;
        }
    }
}

所有人似乎现在都在工作,谢谢你们!

1 个答案:

答案 0 :(得分:1)

您需要做的是将i++替换为以下声明中的j++

for (int j = 0; j < 3; i++) 

并在再次打印2c时注释掉以下行:

printf("%s\n",deck[0]);    //this does nothing (even if I change index)