我正在做一个项目,我必须创建一个黑杰克模拟.所以我开始创建一个套牌和一个绘图功能.由于C中没有字符串,我创建了两个指针数组,将它们用作自定义字符串数组.问题在于,当我打印卡片以查看其价值和适合时,只有它第一次打印出预期的内容.第二次是一团糟.谁可以给我解释一下这个 ?这是我的代码
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
char* suit[] = {"Diamonds", "Hearts", "Spades", "Clubs"};
char* facevalue[] = { "Seven", "Eight", "Nine", "Ten", "Jack","Queen", "King", "Ace"};
char* drawCard()
{
char* card[50];
int cardNumber=rand()%8;
int cardColor=rand()%4;
strcpy(card,facevalue[cardNumber]);
char of[]=" of ";
char* xrwma =suit[cardColor];
strncat(card,of,5);
strncat(card,xrwma,8);
return card;
}
int main()
{
srand(time(NULL));
char* c=drawCard();
puts(c);
puts(c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)