Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сравнение строк (символьные массивы), игнорируя регистровые различия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Таблица умножения http://www.cyberforum.ru/cpp-beginners/thread927258.html
Написал программу которая делает такое: 1.Юзер вводит число, таблицу умножения которого нужно вывести 2.Выводится таблица умножения этого числа Например: 1 1 * 1 = 1 1 * 2 = 2 ...
C++ Подскажите подход к решению Добрый вечер. Есть задача из книги Страуструпа для начинающих. Решение должно быть реализовано на основе библиотеки FLTK и написанных автором классов. Фигуры могу строить только по точкам, указывая... http://www.cyberforum.ru/cpp-beginners/thread927247.html
C++ Посоветуйте хорошую книгу по Visual studio c++
Нужно написать игру, но изучали только консольные приложения! Посоветуйте хорошую книгу по Visual studio c++, а то вообще не знаю с чего начинать!
C++ Выбивает при создании вектора
Мне нужно считать сначала, цифру означающую количество строк, в каждой из которых есть по 3 цифры. Я создаю вектор размера a*3 - где а - количество строк. Например если а=4, то вектор должен быть...
C++ vector. Заменить 3 элемента в середине одним http://www.cyberforum.ru/cpp-beginners/thread927202.html
Допустим есть вектор с 10 эл-ми, нужно элементы под номерами 3,4,5 заменить одним. Как это можно сделать? Заранее благодарен.
C++ считать из файла в файле даны циферки (без пробелов 361815), нужно считать по 1 цифре в массив, и посчитать сумму, допустим первой половины цифр и второй а потом их сравнить. считываю в массив по 1 символу и вывожу... подробнее

Показать сообщение отдельно
PadawanC
1 / 1 / 0
Регистрация: 22.07.2013
Сообщений: 25

Сравнение строк (символьные массивы), игнорируя регистровые различия - C++

22.07.2013, 21:58. Просмотров 942. Ответов 9
Метки (Все метки)

Я недавно начал изучать С++ и все не как не пойму что не так с моей программой... Задача: Напишите программу, которая предлагает пользователю ввести две строки, а затем сравнивает их, игнорируя "регистровые" различия, т.е. прописные и строчные буквы ваша программа должна воспринимать как одинаковые.
Проблема с самим сравнением, в результате получается что строка 1 всегда больше 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
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <cctype>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    system("cls");
 
    char str1[30],str2[30];
    int i;
 
    cout << "Введите строку 1 (до 29 символов): ";
    gets(str1);
    cout << "\n";
 
    cout << "Введите строку 2 (до 29 символов): ";
    gets(str2);
    cout << "\n\n";
    
    for (i=0; str1[i]; i++) if (isupper(str1[i])) str1[i]= tolower(str1[i]);
 
    for (i=0; str2[i]; i++) if (isupper(str2[i])) str2[i]= tolower(str2[i]);
 
    cout << "Строка 1 после обработки: " << str1 << "\n\n";
    cout << "Строка 2 после обработки: " << str2 << "\n\n";
 
    if (strcmp(str1,str2)) cout << "Строка 1 больше строки 2"; 
    else if (strcmp(str2,str1)) cout << "Строка 2 больше строки 1"; 
    else cout << "Строки ровны";
 
getchar();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru