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

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

Войти
Регистрация
Восстановить пароль
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 338
#1

String и его приколы. Что и как сравнивается - C++

26.04.2014, 11:00. Просмотров 337. Ответов 4
Метки нет (Все метки)

Цитата из книги: " Если две строки имеют разные длины и каждый символ которткий строки равен соответствующему символу длинной строки то короткая строка меньше длинной."

Что за прикол? А не проше считат символы на строке и опеределит какая из них длинее.
Вот простая программа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include <string>
int main()
{ setlocale (LC_ALL , "Russian");
    std::string s1, s2;
    std::cout << "Введите текст" << std::endl;
    std::getline(std::cin, s1);
    std::cout << "Введите второй текст" << std::endl;
    std::getline(std::cin, s2);
    if(s1 == s2)
        std::cout << s1 << " ровно " << s2 << std::endl;
    if(s1 < s2)
        std::cout << s1 << " меньше " << s2 << std::endl;
    if(s1 > s2)
        std::cout << s1 << " Бльше " << s2 << std::endl;
    
        _getch();
    return 0;
}
Первый текст: "Hello World!"
Второй текст: "Fly around the World!"
Почему это первая строка больше? Каким способом программа опеределяет какая строка больше а какая меньше. Я не как не могу понят.
Этому ест только одно обьяснение. Все символы которые ровны смволам первой строки сбрасываються. Но почему. Вид в этом нет не какой логики. Или я слишком туп чтоб понят логику?

Добавлено через 9 минут
В той же программе ввел числа 1234 и 12345, 1234 и 1235. Второе больше первого. Почему это с числами не произходит того же что и с символами?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 11:00     String и его приколы. Что и как сравнивается
Посмотрите здесь:

Необходимо каждый элемент массива сравнить с его 8 соседями и если он больше, чем любой из элементов с которыми сравнивается, его распечатать. - C++
Всем привет, помогите решить следующую задачу, есть массив: 3 4 5 6 7 8 9 4 2 10 44 2 2 3 4 5 6 1 2 9 2 2 42 0 1 4 5 8 7 2 9 1 2...

Как проверить есть ли в string что нибудь ? - C++
Как проверить есть ли в string что нибудь ? Например функция для проверки стороки &quot;S&quot;.

Как проверить, что пользователь ввел число в переменную string? - C++
Скажите пожалуйста как проверить что пользователь ввел число в переменную string? И как его потом конвертировать в int ?

Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно? - C++
Знаю как записывать объекты в файл в бинарном виде, но как быть, когда у них динамические поля? Какой метод использовать? Можете привести...

Долгожитель (возраст не менее 100 лет) обнаружил однажды, что если к сумме квадратов цифр его возраста прибавить число дня его рождения, то как раз п - C++
Часть 1.с.м фото Часть 2. Долгожитель (возраст не менее 100 лет) обнаружил однажды, что если к сумме квадратов цифр его возраста...

Подскажите как найти слово строке в котором больше 2 букв 'a', а затем вывести его?Без использования string - C++
Подскажите как найти слово строке в котором больше ОДНОЙ буквы 'a', а затем вывести его?Без string.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
26.04.2014, 11:03     String и его приколы. Что и как сравнивается #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сравнение строк происходит по-другому.Вам логичнее считать,что нужно сравнивать их длину.Но сравниваются индексы символов в строках.Каждый символ имеет свой индекс в таблице символов. Допустим есть строка "ab" и "aw".Первые символы строк имеют одинаковые индексы,а вот вторые уже различны, символ 'w' имеет больший индекс,чем 'b',поэтому строка 'aw" будет больше.
intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 74
Завершенные тесты: 2
26.04.2014, 11:04     String и его приколы. Что и как сравнивается #3
В той же книге следующее предложение - "Если символы двух строк отличаются, результат сравнения определит первый несовпадающий символ"
Байт
Эксперт C
15837 / 10164 / 1522
Регистрация: 24.12.2010
Сообщений: 19,162
26.04.2014, 11:31     String и его приколы. Что и как сравнивается #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Altair42, А вообще-то, есть такое понятие лексикографическая упорядоченность Чтобы понять, что это за зверь - загляните в любой словарь. Или посмотрите на список файлов. Так вот, сравнение строк подразумевает именно эту упорядоченность
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 12:09     String и его приколы. Что и как сравнивается
Еще ссылки по теме:

Объясните пожалуйста как тут работает сортировка и что такое ostream_iterator<string> - C++
вот код. Объясните пожалуйста как тут работает сортировка, сам не могу разобраться. Оссобенно это ostream_iterator&lt;string&gt; не понимаю...

как переделать массив что бы не было его остановки и как добавить индекс - C++
Такая вот задача найти индекс максимального элемента массива , вот мой код что тут не так и что следует добавить ? и почему у меня индекс...

Как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле? - C++
подскажите пожалуйста, как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле?. ПС не...

Выделение в динамичесую память как его написать и как оно происходит? Что это я пишу? - C++
Простите, почти ничего не понимаю. for ( int i=6; i&gt;0;i-- ) { unsigned short CshortVar=i; unsigned long ClongVar=i; ...

джойнер что это за зверь и как его делать - C++
Всем привет, объясните пожалуйста как работает джойнер, по какому принципу, как они склеивают файлы, может у кого исходники есть? Хочу...

Что такое вектор? И как его ввести с клавиатуры? - C++
Вести с клавиатуры целые числа M,N и вектор A=(a1,a2...an), n=15


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

Или воспользуйтесь поиском по форуму:
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 338
26.04.2014, 12:09  [ТС]     String и его приколы. Что и как сравнивается #5
Все понятно спасибо.

Добавлено через 11 минут
Можете помочь с одной программой?
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
#include <iostream>
#include <conio.h>
 
int main()
{
    int a, b;
    int up, down; //Вверхная и нижная граница.
std::cout << "Enter two numbers \n";
std::cin >> a >> b;
//Первый символ должен быт меньще чем второй не смотря на ввод по этому...
if(a >= b) 
{
        up = a;
                down = b;
}
else
{ 
    down = a;
        up = b;
}
 
        for(int i = down + 1; i < up; i++)
        {
         std::cout << " " << i;
         
//Добавляем переменную х = 10 после десятого символа конец строки.
        int x;
        x = 10;
 
// Функция if для почета десятог символа в строке.      
         if(i == down + x)  // 
{
          std::cout <<" " << '\n';
          x = x + 10; 
//Имееться введу. После перехда на новую строку х + 10 = 20. 
//След if(i == down +20) Хочу обеспечит переход на след строкуна 20-ом символе и т.д.
}
}
        _getch();
    return 0;
}х
Эта программа не куда не годится. По идее после перехода к работе с функцией if ( когда число символов в строке достигают 10 (пробелы не считаються). Переменная х должен менят свое значение и проверяться следующий раз с новым значением ( По этому новая значение переменной х вычисляеться в нутри функции if чтоб цикл не менял его каждый раз). Но почему то этого не произходит. Не могу понят почему.

Думаю для этого можно использовать string. Но понятие не имею каким образом. Можно заставит программу считат символы в строке но как заставит перейти на след строку в нужном месте. В другой теме мне показали код на С.
Yandex
Объявления
26.04.2014, 12:09     String и его приколы. Что и как сравнивается
Ответ Создать тему
Опции темы

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