Menu
CoddyTech

多张卡牌

Coddy 文本扑克牌生成器 课程的第 6 课,共 6 课。

我们来显示多张卡片吧!

challenge icon

挑战

中等

现在,我们要添加对多张牌的支持,将 printCard 的输入从整数(牌面值)和字符串(花色)改为整数数组(牌面值)和字符串数组(花色),例如:

输入 [1, 2, 3] 和 ["heart", "club", "spade"] 会得到 3 张牌,分别是红桃 A、梅花 2 和黑桃 3。

你可以假设数组的长度相同。

查看测试用例,了解正确的格式。你应该在牌与牌之间添加一个空格 。

亲手试试

#include <stdio.h>
#include <string.h>

void printCard(int kind, char* suit) {
    char* suitSymbol = " ";
    if (strcmp(suit, "club") == 0) suitSymbol = "♣";
    else if (strcmp(suit, "diamond") == 0) suitSymbol = "♦";
    else if (strcmp(suit, "heart") == 0) suitSymbol = "♥";
    else if (strcmp(suit, "spade") == 0) suitSymbol = "♠";

    char kindBuf[4] = " ";
    if (kind == 1) strcpy(kindBuf, "A");
    else if (kind >= 2 && kind <= 10) sprintf(kindBuf, "%d", kind);
    else if (kind == 11) strcpy(kindBuf, "J");
    else if (kind == 12) strcpy(kindBuf, "Q");
    else if (kind == 13) strcpy(kindBuf, "K");

    printf("╔═════════╗\n");
    if (kind == 10) printf("║ 10      ║\n");
    else printf("║ %s       ║\n", kindBuf);
    printf("║         ║\n");
    printf("║         ║\n");
    printf("║    %s    ║\n", suitSymbol);
    printf("║         ║\n");
    printf("║         ║\n");
    if (kind == 10) printf("║      10 ║\n");
    else printf("║       %s ║\n", kindBuf);
    printf("╚═════════╝\n");
}

文本扑克牌生成器中的所有课

自己练习: C 在线编译器