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

Сравнение char array - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
26.09.2012, 09:51     Сравнение char array #1
Вообщем

Случайно допустил такую конструкцию

if (a > b)
{
....
}
запамятовав, что a и b не int'ы, а char[]'ы, но тем не менее сравнение происходил, и компилятор не ругался, возникает вопрос, а как происходит сравнение символьных массивов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 09:51     Сравнение char array
Посмотрите здесь:

Array не выводит char C++
C++ UnicodeString to Array of char c++ builder
C++ Сравнение 2-ух char массивов
Двойное сравнение char C++
Сравнение char с int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
26.09.2012, 09:52     Сравнение char array #2
Погуглите "Лексикографический порядок"
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
26.09.2012, 09:54     Сравнение char array #3
Имя массива - константный указатель на первый элемент массива. Сравниваются просто два адреса первых элементов массивов. В общих случаях данное сравнение не имеет смысла.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.09.2012, 09:57     Сравнение char array #4
Ну нет, здесь не лексикографический порядок, а сравниваются адреса данных массивов, поэтому если s = "aaa", t = "bbb", но адрес начала массива t меньше адреса s, то результатом будет t < s.

Не по теме:

опоздал

kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
26.09.2012, 10:08  [ТС]     Сравнение char array #5
ок

AlexTorrin, не лексигографический, такое насколько я помню токо в javascript'e
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
26.09.2012, 10:14     Сравнение char array #6
Я такое где-то в книге по STL видел, там правда string был, но мне казалось string тот же char*.
kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
26.09.2012, 10:18  [ТС]     Сравнение char array #7
Ну да, на классах такое сравнение реализовать можно.

Но string это не char[], и не char*

char[] это просто символьный массив
char* это указатель на область памяти типизированную под char

А string это тип данных, введенный специально, чтобы проще было работать с символьными массивами. Да и не только, потому что string это синоним basic_string - параметризованного класса
Поэтому можно писать string <int> или string <double>
Т.е. понятие символа абстрагируется символ - это не только элемент из ASCII таблицы, но и любая знаковая последовательность, которую можно трактовать как один символ
В классе string есть операторы конкантенации - сложения строк, нахождения символа в строке, вообщем куча удобств.

string это как бы такая большая обертка над симвлольным массивом

или вернее новая введенная концепция строки
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
26.09.2012, 10:21     Сравнение char array #8
kotleta, неверно, std::string это синоним для std::basic_string< char >.
kotleta
 Аватар для kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
26.09.2012, 10:22  [ТС]     Сравнение char array #9
Точно!! Соори
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 10:23     Сравнение char array
Еще ссылки по теме:

Созданный объект Array<char> удаляется, как только метод convert завершается C++
array char* to char* (значения массива указателей в один указатель) C++
C++ Как правильно завершить char array (Null terminated)

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

Или воспользуйтесь поиском по форуму:
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
26.09.2012, 10:23     Сравнение char array #10
пойду мануалы читать
Yandex
Объявления
26.09.2012, 10:23     Сравнение char array
Ответ Создать тему
Опции темы

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