指向字符转换的指针不兼容
我正在编写一个程序,将卡片值写入52点字符多维数组。 这个程序是一个测试数组,我稍后将作为函数写入主程序。
在程序中,我初始化一个for循环计数0
到51
。 我使用由13
调制的switch
语句将卡值分配给arrays点。 但是,我收到整数转换的错误指针,如何将值写入数组中的第二个点?
#include 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而不是直接分配字符串文字。 此外,arrays使用是错误的。
代码应如下所示:
#include #include 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
并做这样的事情:
case '0': strcpy(CardValue[i],"ACE");
另请注意, CardValue[i];
完全没有效果。 您还应该删除CardValue[i][6]=i;
,我真的不知道你的意思,但肯定不应该在那里。