0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
||||||
1 | ||||||
Сравнение двух строк (экземпляры класса string ) задействуя метод compare20.12.2015, 22:06. Показов 3713. Ответов 14
Метки нет (Все метки)
Здравствуйте, мне необходимо сравнить два экземпляра класса string, один из экземпляров вводится с клавиатуры, второй экземпляр берется из строкового массива. Проблема заключается в том, что при сравнении одного слова программа выполняет работу корректно, в случае же, если вводятся слова через пробел то сравнение не происходит, либо происходит неверно.
0
|
20.12.2015, 22:06 | |
Ответы с готовыми решениями:
14
Метод compare string Сравнение двух строк string Сравнение строк с помощью String.Compare String.Compare - сравнение строковых величин |
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
|
|
20.12.2015, 22:45 | 2 |
считывает строку до появления первого пробела, поэтому одно введенное слово корректно обрабатывается а несколько слов - нет
1
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
20.12.2015, 22:50 [ТС] | 3 |
Можете ли тогда подсказать как можно сравнивать более одного слова? Со string раньше не работал, вот решил попробовать и выявил такую проблему.
0
|
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
|
|
20.12.2015, 22:55 | 4 |
как вариант, использовать gets она считывает все, введенное с клавиатуры
1
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
20.12.2015, 23:20 [ТС] | 5 |
Да, спасибо, с этим разобрался, использовал getline. Но теперь срабатывает лишь один раз, затем нет возможности выйти из цикла и ввести новое слово.
0
|
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
|
|
20.12.2015, 23:22 | 6 |
оно показывает результат. спрашивает,хотите ли продолжить и виснет?
1
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
20.12.2015, 23:42 [ТС] | 7 |
В первый раз происходит нормальное срабатывание, в конце предлагается выход из цикла, независимо от того какой символ был введен для exit, программа повторяется, но вместо переменной n вводится пустое значение.
0
|
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
|
|
20.12.2015, 23:44 | 8 |
так очень сложно что-либо говорить, не видя листинг
0
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
||||||
20.12.2015, 23:46 [ТС] | 9 | |||||
Здесь еще отлавливал n и exit, думал что они не очищаются и из-за этого проблема.
0
|
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
|
||||||
20.12.2015, 23:49 | 10 | |||||
Если перед getline(), что-то вводится с помощью cin >>, то, перед getline(), нужно убрать '\n' из потока. Например, делать ввод так (можно всегда так, а не только перед getline()):
1
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
20.12.2015, 23:55 [ТС] | 11 |
0
|
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
|
|
21.12.2015, 00:04 | 12 |
После первого чтения getline() вводится exit:
Поэтому, если '\n' из потока не убрать, то второе чтение getline() проскочит. getline() прочитает '\n' из потока (для неё это пустая строка) и код пойдёт, без остановки на ввод, дальше. Добавлено через 1 минуту Вот так сделал?
1
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
21.12.2015, 00:13 [ТС] | 13 |
0
|
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 12
|
|
21.12.2015, 00:20 [ТС] | 15 |
Спасибо вам большое.
0
|
21.12.2015, 00:20 | |
21.12.2015, 00:20 | |
Помогаю со студенческими работами здесь
15
Сравнение двух string Сравнение двух string сравнение строк (string) Сравнение двух List<string> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |