指向字符转换的指针不兼容

我正在编写一个程序,将卡片值写入52点字符多维数组。 这个程序是一个测试数组,我稍后将作为函数写入主程序。
在程序中,我初始化一个for循环计数051 。 我使用由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; ,我真的不知道你的意思,但肯定不应该在那里。