2016-11-15 121 views
-2
#include<stdio.h> 
#include<stdlib.h> 
#include<time.h> 
#include<string.h> 

int main() 
{ 
int playerCount,Face; 
struct cardData{ 
    int value; 
    char face[100][100]; 
}card[100]; 

//Generating Card faces 
    for(int i=0;i<playerCount*3; i++) 
    { 
     Face = (rand() % 4 + 1); 
     switch(Face) 
     { 
      case 1: 
      card[i].face[i][1] = "Diamonds"; 
      break; 

      case 2: 
      card[i].face[i] = 'H'; 
      break; 

      case 3: 
      card[i].face[i] = 'S'; 
      break; 

      default: 
      card[i].face[i] = 'C'; 
      break; 
     } 
    } 
} 

如何在結構成員「face」中存儲俱樂部面孔?肯定這種方式是行不通的。有沒有其他方法可以將字符串分配給結構成員?在結構中存儲字符串

這是我的錯誤

+2

使用'strcpy()'複製C字符串。 'card [i] .face [i] ='H';'應該是'card [i] .face [i] [0] ='H';''或'strcpy(card [i] .face [我],「H」);'等等(取決於你是否需要C字符串或只是一個 - 我猜前者)。 – usr

+1

如果字符串是不變的,你可以用一個'const char *'來表示它們,它可以像你想要的那樣分配給它們。您不能將字符串分配到數組中。 – unwind

+3

'卡[i] .face [i] [1] =「鑽石」;'......編譯器肯定告訴過你什麼,爲什麼你選擇忽略它? –

回答

0

只是一個建議,爲您的字符串值保存在結構「[錯誤]從‘爲const char *’到‘符’[-fpermissive]無效的轉換」。 1.使用字符串複製: strcpy(card [i] .face [i],「H」); 或 2.使用字符匹配: card [i] .face [i] [0] ='H'; card [i] .face [i] [1] = 0;