我正在编写一个程序,将卡片值写入52点字符多维数组。这个程序是一个测试数组,我将在稍后将其作为函数写入主程序
在程序中,我通过0
通过51
初始化for循环计数。我使用由switch
调制的13
语句将卡值分配给阵列点。但是,我收到整数转换的错误指针,如何将值写入数组中的第二个点?
#include <stdio.h>
int main ()
{
char CardValue[52][6];
int i;
for (i=0;i<52;i++)
{
CardValue[i][6]=i;
CardValue[i];
switch (i%13)
{
case '0': CardValue[i][6] = "ACE";
break;
case '1': CardValue[i][6] = "2";
break;
case '2': CardValue[i][6] = "3";
break;
case '3': CardValue[i][6] = "4";
break;
case '4': CardValue[i][6] = "5";
break;
case '5': CardValue[i][6] = "6";
break;
case '6': CardValue[i][6] = "7";
break;
case '7': CardValue[i][6] = "8";
break;
case '8': CardValue[i][6] = "9";
break;
case '9': CardValue[i][6] = "10";
break;
case '10': CardValue[i][6] = "JACK";
break;
case '11': CardValue[i][6] = "QUEEN";
break;
case '12': CardValue[i][6] = "KING";
}
答案 0 :(得分:2)
您需要执行strcpy而不是直接分配字符串文字。此外,数组使用错误。
代码应如下所示:
#include <stdio.h>
#include <string.h>
int main ()
{
char CardValue[52][6];
int i;
/* Not clear what you are trying in the below 2 lines. But, it'll not work :-) */
/*CardValue[i][6]=i;
CardValue[i];*/
for (i=0;i<52;i++)
{
switch (i%13)
{
case '0': strcpy(CardValue[i],"ACE");
break;
case '1': strcpy(CardValue[i],"2");
break;
/** Do the same way for other case **/
}
}
}
答案 1 :(得分:0)
您应该#include <string.h>
并执行以下操作:
case '0': strcpy(CardValue[i],"ACE");
等。另请注意,CardValue[i];
根本没有效果。你也应该删除CardValue[i][6]=i;
,我真的不知道你的意思,但肯定不应该在那里。