2016-11-22 79 views
-2

我正在編寫一個程序來將卡片值寫入52個點字符的多維數組中。這個程序是一個測試數組,我將在稍後作爲函數寫入主程序。
在程序中,我初始化一個for循環計數051。我使用由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"; 

     } 
+0

'CardValue [I] [6]'referes僅一個'char'(類型是'char')。 '「ACE」類型是'char *'。更多地,'CardValue [i] [6]'參考數組之外的字符(你鍵入'char CardValue [52] [6];'索引介於[0-51] [0-5]之間 – Fefux

+0

第11行,如果有的話?'CardValue [i];'上一行有一個半,所以我不認爲它應該做任何事情 – Blacksilver

+0

請在張貼到SO之前顯示一些研究工作,並考慮谷歌搜索這個問題;很高興能夠提供幫助,但在發佈問題之前花些功夫解決您的問題是很好的。 此外,請務必正確縮進您的代碼。 – elmazzun

回答

0

您應該#include <string.h>,做這樣的事情:

case '0': strcpy(CardValue[i],"ACE");

等還要注意,CardValue[i];沒有任何效果可言。你也應該刪除CardValue[i][6]=i;,我真的不知道你的意思,但它肯定不應該在那裏。

2

你需要做一個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 **/ 

     } 
    } 
} 
相關問題