Я возился с C и хочу попробовать выполнить следующие инструкции. Я понимаю, что использование двумерного массива не обязательно, но, поскольку об этом говорится в инструкциях ниже, нельзя обсуждать иначе. поэтому Пользователь вводит дату в следующем формате
Saturday, July 8, 2017, 22:14:10
, и я хочу использовать strtok
для разделения токенов и отображения вывода следующим образом:
Month: July
Day: 8
Year: 2017
Hour: 22
Minute: 14
Second: 10
Мне нужно сделать это путем создания массива строк (или двумерной строки) и копирования токенов таким образом, чтобы s [0] = «июль», s [1] = «8» и s [5] = «10». Используйте a вместо l oop, чтобы отобразить s [0] до s [5]. У меня пока есть:
#include <stdio.h>
#include <string.h>
//"Saturday, July 8, 2017, 22:14:10"
int main(void) {
char date[8][20];
char *order[] = {"Month", "Day", "Year", "Hour", "Minute", "Second" };
printf(" Example: Saturday, July 8, 2017, 22:14:10 \n Enter date seperated by commas in following format: \n");
char text[64];
scanf(" %s, text");
char* delims = " ,:";
char* token = strtok(text,delims);
char** label = order;
int r = 0;
while (token){
strcpy(date[r],token);
if (!date[r][0]) continue;
printf("%-8s: %s\n ",*label,date[r]);
token = strtok(NULL,delims);
label++;
r++;
}
return 0;
}
Это мой результат, когда я запускаю код
Пример: суббота, 8 июля 2017 г., 22:14:10 Введите дату, разделенную запятыми в следующий формат: понедельник, 1 августа 2012 г., 21: 12: 9 Месяц: éq (u Процесс завершен с кодом выхода -1073741819 (0xC0000005)
Что я делаю не так. Пожалуйста, помогите!