Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vasiliy43
Заблокирован
#1

Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») - C++

23.06.2013, 15:49. Просмотров 429. Ответов 9
Метки нет (Все метки)

Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год». Например, «10.02.10» превращается в "февраль 10 2010", используя функции пользователя и пользуясь только Char , а не string.
У меня тут код есть..Но он странный. Очень маленький и там некуда вставить функции пользователя, а без них никак нельзя. И плюс ко всему я подозреваю, что выбор какой век использовать(то есть первые 2 числа какие должны быть) я сделал совсем не так, как стоило бы. Помогите пожалуйста нормально сделать.

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
#include <iostream>
#include <string.h>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "rus");
int a,b,c,d;  
cout<<"Введите дату:"<<endl;
char *MONTH[] = {"","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"};
 
    cout<<"Месяц: ";
    cin>>a;
    cout<<"День: ";
    cin>>b;
    cout<<"Год: ";
    cin>>c;
    cout<<"введите 20,если нужен 20-тый век,введите 21, если нужен 21 \n";
    cin>>d;
    if(d==20)
cout<<MONTH[a]<<" "<<b<<" "<<"19"<<c<<endl;
    if(d==21)
cout<<MONTH[a]<<" "<<b<<" "<<"20"<<c<<endl;
 
 
 
 
 
 system("pause");
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 15:49     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»)
Посмотрите здесь:

Дата в формате <день>.<месяц>.<год> C++
Дни, месяц и Год C++
C++ . Введите месяц и день своего рождения. Выясните, какой ближайший год будет для вас счастливым. Год называется счастливым, если остаток от деления сум
C++ Превратить заданную пользователем дату в формате "дд.мм.гг" в формат "месяц дд. год"
Строки и функции пользователя. Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год» C++
C++ Создать класс Date для работы с датами в формате "год. месяц. день"
C++ Создать класс Date для работы с датами в формате «год.месяц.день»
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
23.06.2013, 16:22     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #2
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
#include <iostream>
#include <cstring>
 
const char* foo( char * const a, const int buff ) {
    char *MONTH[] = { "", "ГџГ*ГўГ*ðü", "ÔåâðГ*ëü", "ГЊГ*ðò", "Àïðåëü", "ГЊГ*Г©", "ÈþГ*Гј",
                        "Èþëü", " ГЂГўГЈГіГ±ГІ", "ÑåГ*òÿáðü", "Îêòÿáðü",
                        "Íîÿáðü", "ÄåêГ*áðü" };
    
    char b[buff];
    int nMonth = ( a[3] == '0' ? static_cast< int >( ( a[4] - '0' ) ) :
                     10 + static_cast< int >( ( a[4] - '0' ) ) ) ;
    
    if( nMonth > 12 || nMonth < 0 )
        return "Invalid string";
                     
    strcpy( b, MONTH[ nMonth ] );
                     
    strcat( b, " " );
                     
    strncat( b, a, 2 );
    
    
    
    strcat( b, " 20" );
    
    a[0] = a[6];
    a[1] = a[7];
    
    strncat( b, a, 2 );
    
                     
    return b;
} 
 
int main() {    
    setlocale(LC_ALL, "rus");
    const int buff = 20;
    char a[buff];
    
    std::cin.getline( a, buff );
    
    strcpy( a, foo( a, buff ) );
    std::cout << a;
    
    return 0;
}
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
23.06.2013, 16:26     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #3
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
#include <windows.h>
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
char* months[]={"","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"};
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL,"rus");
 
    char date[9];
    cin.getline(date,9);
 
    char month[3];
    month[0]=date[3];
    month[1]=date[4];
    month[2]=0;
 
    char date2[40];
    strcpy(date2,months[atoi(month)]);
    strcat(date2," ");
    char day[3];
    day[0]=date[0];
    day[1]=date[1];
    day[2]=0;
    strcat(date2,day);
    strcat(date2," 20");
    char year[3];
    year[0]=date[6];
    year[1]=date[7];
    year[2]=0;
    strcat(date2,year);
    cout<<date2<<endl;
}
Vasiliy43
Заблокирован
23.06.2013, 23:37  [ТС]     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #4
char b[buff];
Вот это выражение не понимает компилятор.. Пишет, что не понимает, что это такое.. Чем его можно заменить?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
24.06.2013, 12:22     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #5
Цитата Сообщение от Vasiliy43 Посмотреть сообщение
Пишет, что не понимает, что это такое
Что прям так и пишет? А может лучше покажите, какая ошибка на самом деле
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,340
24.06.2013, 13:04     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #6
Цитата Сообщение от coloc Посмотреть сообщение
Что прям так и пишет? А может лучше покажите, какая ошибка на самом деле
И правильно не понимает. Это VLA - нестандартное расширение gcc.
Vasiliy43
Заблокирован
24.06.2013, 13:12  [ТС]     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #7
Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»)
Vasiliy43
Заблокирован
24.06.2013, 19:03  [ТС]     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #8
Что можно написать, чтобы работало корректно в вижуал студио, если проблема в моем компиляторе?
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
24.06.2013, 19:04     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #9
C++
1
char b[buff];
заменить на
C++
1
char *b = new char [buff];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 22:48     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»)
Еще ссылки по теме:

Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату C++
C++ Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату
C++ Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
C++ Распарсить строку и записать дату рождения в три целочисленные переменные - отдельно день, месяц и год
По дате d,m,y определить дату следующего дня d1,m1,y1( d-день , m-месяц, y-год). Использовать оператор switch C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vasiliy43
Заблокирован
24.06.2013, 22:48  [ТС]     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») #10
Спасибо. Все работает. У меня вопрос по коду.
Что делают эти команды?:
int nMonth = ( a[3] == '0' ? static_cast< int >( ( a[4] - '0' ) ) :
10 + static_cast< int >( ( a[4] - '0' ) ) ) ;
Yandex
Объявления
24.06.2013, 22:48     Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»)
Ответ Создать тему
Опции темы

Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru