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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
ElvenDragon
 Аватар для ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
15.07.2011, 13:14     Сравнение строк #1
Объясните пожалуйста по какому способу строки сравниваются? А то я сравнивал так и не понял в чем состоит хитрость. Допустим пример "trons" == "robin". И как происходит здесь сравнение?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2011, 13:14     Сравнение строк
Посмотрите здесь:

C++ Сравнение строк
C++ Сравнение строк
Сравнение строк C++
Сравнение строк C++
C++ сравнение строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CAHTEXHUK
Заблокирован
15.07.2011, 13:21     Сравнение строк #2
посимвольно обычно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
15.07.2011, 13:24     Сравнение строк #3
Цитата Сообщение от ElvenDragon Посмотреть сообщение
Объясните пожалуйста по какому способу строки сравниваются? А то я сравнивал так и не понял в чем состоит хитрость.
Строки(сишные) сравнивают посимвольно. В string.h(cstring) есть уже реализованная для этой цели функция strcmp.

Цитата Сообщение от ElvenDragon Посмотреть сообщение
Допустим пример "trons" == "robin". И как происходит здесь сравнение?
Это сравнение указателей. Т.е. это аналогично тому, как если бы ты написал
C++
1
2
3
const char* s1 = "trons";
const char* s2 = "robin";
if(s1 == s2) ...
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
15.07.2011, 14:26     Сравнение строк #4
rangerx, замудрили..
ElvenDragon,
Функция strcmp() сравнивает в лексикографическом порядке две строки и возвращает целое значение 1 если 1 строка больше второй, -1 если наоборот, 0 если равны.
сравнение ведется по коду символа в таблице аски.
К примеру код символа 'a' будет меньше чем код символа 'z'
к примеру:
и при таком сравнении strcmp("air", "zero") результат вернет -1. так как код буквы z больше чем буквы а.
ElvenDragon
 Аватар для ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
15.07.2011, 15:20  [ТС]     Сравнение строк #5
Короче я понял что приоритет первого символа выше чем предыдущего и если они равны то сравнивается символ 2 итак далее. А если нет то побеждает наибольший символ.
Yandex
Объявления
15.07.2011, 15:20     Сравнение строк
Ответ Создать тему
Опции темы

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