我正在编写一个程序将卡值写入52个点字符多维数组。该程序是一个测试阵列,我将稍后将其作为函数写入函数。
在程序中,我初始化 0
通过51
来初始化循环计数。我使用由13
调制的switch
语句将卡值分配给数组点。但是,我还会收到错误指针到整数转换,还如何将值写入数组中的第二个位?
#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";
}
您需要进行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 **/
}
}
}
您应该 #include <string.h>
并做类似的事情:
case '0': strcpy(CardValue[i],"ACE");
等。另请注意,CardValue[i];
根本没有效果。您还应该删除CardValue[i][6]=i;
,我真的不知道您的意思,但肯定不应该在那里。