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

C 指向字符转换的指针不兼容,c,C,我正在写一个程序,将卡片值写入一个52个字符的多维数组。这个程序是一个测试数组,稍后我将把它作为函数写入主程序。 在程序中,我通过0到51初始化for循环计数。我使用由13调制的switch语句将卡值分配给数组点。但是,我收到了指向整数转换的错误指针。我如何将值写入数组中的第二个点 #include <stdio.h> int main () { char CardValue[52][6]; int i; for (i=0;i<52;i++)

我正在写一个程序,将卡片值写入一个52个字符的多维数组。这个程序是一个测试数组,稍后我将把它作为函数写入主程序。
在程序中,我通过
0
51
初始化for循环计数。我使用由
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";

        }
#包括
int main()
{
char CardValue[52][6];
int i;
对于(i=0;i您应该
#包括
,并执行以下操作:

案例“0”:strcpy(CardValue[i],“ACE”);


等等。还要注意,
CardValue[i];
一点效果都没有。您还应该删除
CardValue[i][6]=i;
,我真的不知道这是什么意思,但它肯定不应该在那里。

您需要执行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 **/

        }
     }
}
#包括
#包括
int main()
{
char CardValue[52][6];
int i;
/*不清楚您在下面两行中尝试了什么。但是,它不起作用:-)*/
/*CardValue[i][6]=i;
CardValue[i];*/

对于(i=0;i
CardValue[i][6]
只引用一个
char
(类型为
char
)。
“ACE”
类型为
char*
。此外,
CardValue[i][6]
引用数组外的字符(您键入
char CardValue[52][6];
因此索引介于[0-51][0-5]之间第11行做什么,如果有的话?
CardValue[i]前一行有一个半,所以我不认为它应该做任何事情。请在发布之前,显示一些研究工作,并考虑Google问题;这里的人很乐意帮助,但是在发布问题之前在您的问题上投入一些努力是很好的。同时,请务必正确地缩进代码。