gpt4 book ai didi

c - C语言中如何将两个数组字符串变成一个数组字符串

转载 作者:行者123 更新时间:2023-11-30 15:22:51 25 4
gpt4 key购买 nike

如何将 2 个数组字符串变成 1 个数组字符串,这样我就可以打印出所有 52 张扑克牌?

我的代码:

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


int main() {
char deck[52];
char suits[] = {"Hearts","Diamonds","Clubs","Spades"};
char values[]= {"Ace","Two","Three","Four","Five","Six",\
"Seven","Eight","Nine","Ten","Jack",\
"Queen","King"};
int V, S, d = 0;
char string;
for ( S= 0; S <4; S++) {
for (V =0; V< 13; V++) {
string = strcat( values[V], suits[S]);
deck[d] = string;
printf("%s\n", string);//prints out all the 52 playing cards
d++;
}
}

return 0;
}

当我执行程序时,出现问题,要求我调试程序或关闭程序,最终我关闭了程序,没有返回任何内容。您能给我有效的答案吗?

最佳答案

检查以下代码,该代码修复了代码中的问题:您的代码的问题是您尝试在打印之前修改实际的字符串,因此在下一次迭代中会有修改的字符串。因此,只需将值和花色复制到数组并打印出来,如下所示。

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


int main()
{
int i=0;
char deck[30] = "";
char suits[][30] = {"Hearts","Diamonds","Clubs","Spades"};
char values[][30]= {"Ace","Two","Three","Four","Five","Six",
"Seven","Eight","Nine","Ten","Jack",
"Queen","King"};
int V, S;
for ( S= 0; S <13; S++)
{
for (V =0; V< 4; V++){
memset(deck,0,sizeof(deck));/* Clear the buffer before writing new value*/
strcpy( deck, values[S]);
strcat(deck,suits[V]);
printf("%s\n", deck);//prints out all the 52 playing cards
i++;
}
}
printf("Number of playing cards: %d\n",i);

return 0;
}

关于c - C语言中如何将两个数组字符串变成一个数组字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29025599/

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