Как я могу получить каждый символ в строке? - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть:

char *card[4]; 
gets(&card[player - 1]); // 2 chars at a time (e.g. 2S, 3D, TF)

Я могу напечатать строку следующим образом:

printf("%s",&card[0]);

Но как я могу получить каждый символ из &card[0] (например, '2' и 'S')

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Что вы хотите сделать, это, вероятно, следующее:

char card[3];
fgets(card, 3, stdin);
printf("%c %c", card[0], card[1]);
0 голосов
/ 21 сентября 2019

Просто внесите их в указатель.Например:

printf("%c %c", card[0][0], card[0][1]);

Тем не менее, ваш пример кода неверен (память не выделена и занимает адрес, вызывающий gets).

Вместо этого сделайте что-то вроде:

#define NPLAYERS 5
#define LENGTH 3 // 2 + the null terminator

char card[NPLAYERS][LENGTH];
int player = 0; // first player
fgets(card[player], LENGTH, stdin);
printf("%c %c", card[player][0], card[player][1]);

Это резервирует место для 5 игроков, каждый с буфером, который может содержать 3 персонажа.Всего 15 байтов.

Было бы неплохо проверить код возврата fgets.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...