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

Сравнивание char строки с текстом - C++

Восстановить пароль Регистрация
 
gluchovv
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 14
12.01.2013, 14:01     Сравнивание char строки с текстом #1
Программа определяет какое событие произошло раньше а какое позже(вводится с экрана, к примеру 2012 April 21). В программе не сравнивает значение месяца введенного в консоль(оно же в переменной хранится) с тем что задается в условии.

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
78
79
80
81
82
83
84
85
86
87
88
//3.4 programm
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <clocale>
#include <ctime>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
struct StrDat
{
    int Number;
    char Year [4];
    char Month [50];
    unsigned int Day;
};
 
int func2(StrDat Elem)
{
    int month;
 
    if (Elem.Month== "January") month=1; 
    if (Elem.Month== "February") month=2; 
    if (Elem.Month== "Martch") month=3; 
    if (Elem.Month== "April") month=4; 
    if (Elem.Month== "May") month =5; 
    if (Elem.Month== "June") month=6; 
    if (Elem.Month== "July") month=7; 
    if (Elem.Month== "August") month=8; 
    if (Elem.Month== "September") month=9; 
    if (Elem.Month== "October") month=10; 
    if (Elem.Month== "November") month=11; 
    if (Elem.Month== "December") month=12; 
    
    return month;
}
char *func(StrDat E1, StrDat E2)
{
    char *sob;
    char *ptr;
    int yearE1,yearE2;
    int monthE1,monthE2;
    yearE1=strtol(E1.Year,&ptr,10);
    yearE2=strtol(E2.Year,&ptr,10);
    monthE1=func2(E1);
    monthE2=func2(E2);
    if (yearE1<yearE2) {sob="\nПервое событие произошло раньше\n";} else 
    {if (yearE1>yearE2)
    {sob="\nВторое событие произошло раньше\n";} else
    
    {if (yearE1==yearE2)
    {
        if (monthE1>monthE2) {sob="\nВторое событие произошло раньше\n";} else
        {if (monthE1<monthE2)
        {sob="\nПервое событие произошло раньше\n";} else
        {if (monthE1=monthE2)
            {
                if (E1.Day>E2.Day) {sob="\nВторое событие произошло раньше\n";} else 
                {if (E1.Day<E2.Day)
                {sob="\nПервое событие произошло раньше\n";} else sob="\nСобытия произошли в один день\n";}
            }
        }
        }
    }
    }
    }
    return sob;
};
 
void main()
{
    setlocale(LC_ALL, "Rus");
    StrDat Elem3,Elem14;
    Elem3.Number=1;
    Elem14.Number=2;
    cout << "Vvedite year(yyyy), month(example: September), day(dd) pervogo sobitija:\n";
    cin >> Elem3.Year >> Elem3.Month >> Elem3.Day;
    cout << "\nVvedite year(yyyy), month(example: December), day(dd) vtorogo sobitija:\n";
    cin >> Elem14.Year >> Elem14.Month >> Elem14.Day;
    char *sob;
    sob=func(Elem3,Elem14);
    cout << sob;
    system("pause");
     
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 14:01     Сравнивание char строки с текстом
Посмотрите здесь:

C++ Строки с типом char * в С++
Запись строки char в массив char C++
заполнение char[] текстом C++
Строки char и магия C++
C++ перевод строки CHAR
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
12.01.2013, 14:03     Сравнивание char строки с текстом #2
Цитата Сообщение от gluchovv Посмотреть сообщение
C++
1
Elem.Month== "January"
А Вы уверены, что так нужно сравнивать?
gluchovv
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 14
12.01.2013, 14:05  [ТС]     Сравнивание char строки с текстом #3
Цитата Сообщение от Croessmah Посмотреть сообщение
А Вы уверены, что так нужно сравнивать?
В этом то и загвоздка, поэтому и решил узнать, как и что))
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
12.01.2013, 14:07     Сравнивание char строки с текстом #4
Функция strcmp
gluchovv
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 14
12.01.2013, 14:12  [ТС]     Сравнивание char строки с текстом #5
Цитата Сообщение от Croessmah Посмотреть сообщение
это, как я понял, сравнение по длине, или ошибаюсь? мне надо чтобы значения сравнивал
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
12.01.2013, 14:17     Сравнивание char строки с текстом #6
Цитата Сообщение от gluchovv Посмотреть сообщение
это, как я понял, сравнение по длине, или ошибаюсь?
лексикографическое сравнение
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 14:28     Сравнивание char строки с текстом
Еще ссылки по теме:

Обработка строки Char C++
C++ Различное поведение функции которая копирует строки с char* t и char t[]
Преобразование char в char* или разделить на две строки C++

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

Или воспользуйтесь поиском по форуму:
gluchovv
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 14
12.01.2013, 14:28  [ТС]     Сравнивание char строки с текстом #7
Цитата Сообщение от Croessmah Посмотреть сообщение
лексикографическое сравнение
спасибо, работает
Yandex
Объявления
12.01.2013, 14:28     Сравнивание char строки с текстом
Ответ Создать тему
Опции темы

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