【发布时间】:2019-08-26 13:21:20
【问题描述】:
我正在编写一个关于卡片的程序,但我无法在结构中添加字符串。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char szin[100];
char ertek;
} Adat;
int main()
{
Adat pakli[52];
int a=0;
char szimb[13]= {'A','2','3','4','5','6','7','8','9','1','J','Q','K'};
char szinek[4][100]={"pikk","kor","treff","karo"};
printf("%s\n",szinek[0]);
for(int b=0; b<4; b++)
{
for(int c=0; c<13; c++)
{
Adat d={szinek[b],szimb[c]};
pakli[a]=d;
a++;
}
}
printf("%s %c",pakli[0].szin,pakli[0].ertek);
return 0;
}
所以,请帮助我,我搜索了很多,但我没有得到任何有用的答案。
【问题讨论】:
-
这段代码会发生什么?你得到什么错误?
-
printf 给我一个随机字符(错了)和一个 A 字母(很好)
-
由于最长的西装名称占用 6 个字节(5 个字母加上一个空字节),您可以将
100更改为6,而不会明显损失功能,但使用的空间要少得多。您甚至可以考虑在结构中使用指向名称的指针而不是数组(但在 64 位机器上,这不会节省空间 - 由于填充,结构将增加到 16 字节,而不是使用 7 字节)。