Перевод цифровых символов в формат даты - C (СИ)

  1. Дана строка из восьми цифровых символов. переведите его в формат даты "dd - mm - yyyy" и проверьте корректность такой даты.


textual

Код к задаче: «Перевод цифровых символов в формат даты - C (СИ)»

#include<stdio.h>
#include<conio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
 
void main()
{   char bf[8];
    struct tm _tm;
    memset(&_tm,NULL, sizeof(_tm));
    cputs(" Введите дату[ddmmyyyy]:");
    gets(bf);
   _tm.tm_year = atoi(&bf[4]); bf[4] = 0;
   _tm.tm_mon  = atoi(&bf[2]); bf[2] = 0;
   _tm.tm_mday = atoi(&bf);
   printf("Получили %2d-%2d-%4d\n\r", _tm.tm_mday,_tm.tm_mon ,_tm.tm_year);
   _tm.tm_year = _tm.tm_year - 1900;
   _tm.tm_mon--;
    printf("Проверка: %s", asctime(&_tm));
    getch();
};

СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 4.091 из 5



Похожие ответы
  1. Здравствуйте .Помогите пожалуйста написать программу перевода Десятичной СС в другие системы

  1. Добрый день всем! Есть массив, который заполняется трехзначным числом, введенным с клавиатуры (UART_ComBody[2]), надо перевести его в число типа int. (для вычисления) Например, вводим число 143. Оно в массиве будет выглядеть так:C1 2 3 UART0_ComBody[0] = 1; UART0_ComBody[1] = 4; UART0_ComBody[2] = 3;

  1. Помогите с переводом из двоичной в восьмеричную систему счисления. Проверку по алфавиту можно отбросить. Интересует вариант разбития на триады. Не могу придумать алгоритм чтобы из строки бралось только 3 символа, а потом последующие 3, ну и если чисел для триады не хватает добавить нулей.

  1. ПОМОГИТЕ ПОЖАААЛУЙСТА!!! НУЖНА ПРОГРАММА ПЕРЕВОД ИЗ ИНФИКСНОЙ В ПОСТФИКСНУЮ ФОРМУ ( ГДЕ САМО ВЫРАЖЕНИЕ ВВОДИТСЯ С КЛАВИАТУРЫ ) SOS!!!

  1. Задание: Написать программу на языке С для перевода числа, представленного в системе счисления с основанием S, в системы счисления с основаниями P, Q, R. Обеспечить корректность ввода числа в системе счисления с основанием S. Перевод чисел реализовать с применением функций. (Разработайте функцию для перевода числа из системы счисления с основанием S в систему счисления с основанием P, а затем, функции для перевода из P в Q и из P в R.) Не использовать стандартных возможностей по вводу/выводу чисел представленных в 2-ой, 8-ой, 16-ой системах счисления. Для представления цифр больших 9 использовать заглавные буквы латинского алфавита. S=13 P=10 Q=8 R=14 Помогите составить программу, я в программировании только начинающий. Есть код на C++, может кому то поможет:C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 #include "stdafx.h"   #include #include #include #include   using namespace std;   char model[14] = {'0', '1','2','3','4','5','6','7','8','9','A', 'B', 'C', 'D'};   int conversion_to_int (string s) {     double result = 0;     int digits = s.length();     double razr;     double osn = 13;     for ( int i = digits; i>0; i--)         {         for (int b = 0; b <= 13; b++)         {             if (s[digits-i] == model [b])             {                 razr = b;                 break;             }             if (b == 13)             {             cout << "ВВЕДЕНО НЕКОРРЕКТНОЕ ЗНАЧЕНИЕ!!!!" << endl;             cout << "Расчёт ведется для значения 0" << endl;             return 0;             }         }         result = result + razr*pow(osn,i-1);             }     return (int) result; } string conversion_to_other (int digit, int num) // digit - основание, num - число {     string number;     int ostatok;     while (num > digit)     {     ostatok = num%digit;     number = number + model [ostatok];     num = num/digit;     }     number = number + model [num];     reverse(number.begin(),number.end());     return number;   }   int _tmain(int argc, _TCHAR* argv[]) {     string s;     int result;     setlocale(LC_CTYPE, "rus");     cout << "Введите число с основанием системы исчисления 13" << endl;     cout << "Используйте только цифры и заглавные латинские буквы" << endl;     for (int i = 0; i<13; i++)     {         cout << model [i] << " ";       }     cout << endl << endl;     cin >> s;     result = conversion_to_int (s);     cout << endl<< "Ваше число:"<

  1. Дан текст. Если в нём записано символы '0'-'9' перевести его в число.Проблема в том, что с while в n выводит 0,а без while всё нормально:C1 2 3 4 5 6 7 8 9 10 #include #include   void main() {     const char * str="123456";//TEXT     int n;     n=atoi(str);     printf("%d\n",n); }Как исправить?C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include #include   #define TRUE 1 #define FALSE 0   void main() {     setlocale(LC_ALL,"Rus");     const char * str="123456";//TEXT     int flag=EOF;     while(*str){         if(*str>='0' && *str<='9'){             flag=TRUE;         }         else{             flag=FALSE;             break;         }         str++;     }     int n;     if(flag==TRUE){         n=atoi(str);         printf("%d\n",n);     }     else printf("Ошибка! Текст должен состоять из символом от 0 до 9\n"); }Добавлено через 27 минутРЕШИЛC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include #include #include   #define TRUE 1 #define FALSE 0   int text(const char * a) {     int flag=EOF;     while(*a){         if(*a>='0' && *a<='9'){             flag=TRUE;         }         else{             flag=FALSE;             break;         }         a++;     }     return flag; }   void main() {     setlocale(LC_ALL,"Rus");     const char * str="123456";//TEXT     int n;     if(text(str)==TRUE){         n=atoi(str);         printf("%d\n",n);     }     else printf("Ошибка! Текст должен состоять из символом от 0 до 9\n"); }

  1. Уважаемые форумчане, поясните нерадивому первокурснику, как нужно делать данное задание : Дан массив целых чисел (N=16). Элементы массива представляют собой последовательность нулей и единиц. Преобразовать этот массив в эквивалентное шестнадцатеричное число. Если со строковым массивом все понятно, преобразует двоичное число как надо, то вот с массивом ЦЕЛЫХ чисел бяда. Буду очень признателен за вставку с кодом.

  1. написал код, не могу понять какие условия вписать, чтобы нельзя было вводить ничего кроме букв и цифрC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include "stdio.h" #include "math.h" #include "windows.h" #include "string.h"     int hexdec(char st[10]) {   int i, s, k, p;         s = 0;         p = strlen(st)-1;             for (i = 0; p>=0; i++, p--)   {     k=toupper(st[i]);             s+=((k>='A')?10+k-'A':k-'0')*pow(16,p);   }   return s; }   int main() {   char st[10];         scanf ("%s",  &st) ;             printf ("Result: %d\n",hexdec(st));             system("pause");   }мысль была, что нельзя ничего вводить кроме с 48 до 57 символа в аски и так же с буквами от а до f, как реализовать совсем не понимаю

  1. С клавиатуры ввести целое беззнаковое число. Сформировать символьною строку, в который занести три цифры троичного кода этого числа. Напечатать строку с троичным кодом и указать, сколько раз в нем повторяется каждая из цифр.

  1. Всем привет! Кто знает , каким образом сделать что бы программа бинарный код перевоила в буквы, не используя при этом библиотеку string.h и функцию scanf?