2015-06-27 2 views
-1

Мне нужно прочитать с клавиатуры дату в формате DD.MM.YYYY и перепечатать как MM-DD-YYYY. Есть ли какое-либо другое решение, использующее цикл и точечный тест? Спасибо!DD.MM.YYYY в MM-DD-YYYY в C

+0

Вы можете использовать примитивный подход 'out [0] = in [3]; out [1] = in [4]; out [3] = '.'; ...' – CodesInChaos

ответ

3

Лучшее решение, и, вероятно, то, что вы ищете

struct tm *tm; 
    char str_date[100]; 
    char input_data[] = "20-20-2015"; 

    // Extract date from a string to a tm struct 
    strptime(input_data, "%d.%m.%Y", tm); 

    // Convert tm struct to string and print it 
    strftime(str_date, sizeof(str_date), "%m-%d-%Y", tm); 
    printf("Date: %s", str_date); 

Вы можете прочитать больше о strftime и strptime.

Если вы не хотите делать какие-либо проверки (для того, чтобы проверить, если дата существуют), и вобще читать репринт:

scanf("%d.%d.%d",&d,&m,&y); 
printf("%d-%d-%d,m,d,y); 

необязательно можно указать их точные размеры, используя что-то например %2d.%2d.%4d