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

Функция сравнивает две строки, игнорируя различия в регистрах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ поиск факториала в диапазоне http://www.cyberforum.ru/cpp-beginners/thread233258.html
были заданы задачи, я с первыми тремя справился, а с этими никак. кто может, помогите пожалуйста с решением задач на с++: 4. Найти р!, где р – каждое третье простое число в диапазоне от n1 до n2 (функциями оформить определение факториала и проверку, является ли число простым). 5. Определить порядковые номера и значения первого положительного и последнего отрицательного элементов...
C++ срочно нужно написать 2 программы 1. Создать программу обработки текстового массива согласно данным условиям: С элементов текстового массива В$(20) сформировать массивы, элементы которых имеют одинаковую длинну. 2.Создать программу согласно данным условиям: Дан файл f, компонентами которого есть натуральные числа от 1 до 150. Записать в файл g все компоненты файла f, которые являются полными квадратами. P.S. Было бы очень... http://www.cyberforum.ru/cpp-beginners/thread233256.html
C++ Создать программу обработки текстового массива согласно данным условиям
Помогите, пожалуйста, с программками. 1. Создать программу обработки текстового массива согласно данным условиям: С элементов текстового массива В$(20) сформировать массивы, элементы которых имеют одинаковую длинну. 2.Создать программу согласно данным условиям: Дан файл f, компонентами которого есть натуральные числа от 1 до 150. Записать в файл g все компоненты файла f, которые являются...
удаление "строки" в бинарном файле C++
есть файл .dat. в нем записаны структуры. я удаляю запись /т е одну из структр/. удаляю записывая на ее место пустую структуру и сохраняю результат во временный файл. но удаляется коряво. удаляет не всю структуру а только ее часть. пример в файле записано 1 Avt1 nazv1 izd1 1999 123 129.48 2 avt2 nazv2 izd2 1997 144 17.33 после удаления получается вот что 1 Avt1 nazv1 izd1 1999 123 129...
C++ Возвращение функциями указателей http://www.cyberforum.ru/cpp-beginners/thread233233.html
Доброго времени суток:) Помогите понять код!!!Суть вопроса описана в коментах в коде. Условие задачи:В программе демонстрируеться использование указателя в качестве типа возвращаемого значения.Ф-ция get_substr() возвращает указатель на первую подстроку(найденную в строке),которая совпадает с заданной.Если заданная подстрока не найдена,возвращается нулевой указатель. #include "stdafx.h"...
C++ Описать сведения о книгах Вот это прога, которая выносит мой мозг уже ни один час.... Преподу надо, чтоб прога по второму варианту (коду) работала так же как первая вот прога рабочая (Первая) #include <conio.h> #include <dos.h> #include <iostream.h> #include <string.h> #include <stdio.h> подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,669
24.01.2011, 14:51     Функция сравнивает две строки, игнорируя различия в регистрах
Задача 1
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
//////////////////////////////////////////////////////////////////////////////////////
//Функция сравнивает две строки, игнорируя различия в регистрах.
//////////////////////////////////////////////////////////////////////////////////////
#include <cctype>
#include <iostream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////////////
bool  string_eq_not_match_case(const T_str&  s_L, const T_str&  s_R)
{
    struct  T_symb_comp_not_match_case
    {
        bool  operator() (char L, char R)
        {
            return tolower(L) == tolower(R);
        }        
    };
    return    s_L.size() == s_R.size()
           && std::equal(s_L.begin(), s_L.end(), s_R.begin(), 
                         T_symb_comp_not_match_case());
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << "Введите строки для сравнения без учета регистра:" 
                  << std::endl
                  << '\t'
                  << "-> ";
        T_str  s_L;
        getline(std::cin, s_L);
        if(s_L.empty()) break;
 
        std::cout << '\t'
                  << "-> ";
        T_str  s_R;
        getline(std::cin, s_R);
        if(s_R.empty()) break;
 
        std::cout << "Строки "
                  << (string_eq_not_match_case(s_L, s_R) ? "равны." : "не равны.")   
                  << std::endl;    
    }
}
 
Текущее время: 22:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru