指向角色转换的不兼容指针



我正在编写一个程序将卡值写入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;,我真的不知道您的意思,但肯定不应该在那里。

相关内容

最新更新