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

Как хранить лица клуба в элементе структуры «лицо»? Конечно, этот способ не работает. Есть ли другой способ назначить строки члену структуры?Хранение строк в строении

Это ошибка я получаю «[Ошибка] Неправильное преобразование из„сопзЬ символ *“к„полукокса“[-fpermissive]»

+2

Используйте 'strcpy()' для копирования C-строк. И 'card [i] .face [i] = 'H';' должен быть либо 'card [i] .face [i] [0] = 'H';' или 'strcpy (card [i] .face [i], «H»); и т. д. (в зависимости от того, нужны ли вам C-строки или просто один - я думаю, первый). – usr

+1

Если строки постоянны, вы можете представить их с помощью 'const char *', которые могут быть назначены так, как вам кажется. Вы не можете назначать строки в массивы. – unwind

+3

'card [i] .face [i] [1] =« Diamonds »;' ... компилятор наверняка сказал вам что-то, почему вы решили проигнорировать это? –

ответ

0

Просто советы для вас, чтобы хранить строковые значения в структуре. 1. Использовать строчную копию: strcpy (card [i] .face [i], "H"); или 2. Использование символа: card [i] .face [i] [0] = 'H'; карта [i] .face [i] [1] = 0;