2016-11-15 123 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;