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

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

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

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

26.09.2012, 09:51. Просмотров 1288. Ответов 9
Метки нет (Все метки)

Вообщем

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

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

array char* to char* (значения массива указателей в один указатель) - C++
Как сложить(или вывести в формате char*) все значения массива указателей(char *) воедино, то есть сложить строки и назначить результату...

Сравнение текста из файла и сравнение с текстом в программе char - Dev C++ - C++
Доброго времени суток! Имеется код программы: ifstream test("primer.txt"); char awm = "kod"; char buff; test >> buff; if (buff...

Сравнение разных типов *Char и Char - C++
Друзья, выполняю задание по имитации консольной команды Windows. Встретился с проблемой разделения введенной строки на отдельные слова, но...

Char array - C++
написал такой код char Arry; for (int i = 0; i < 20; ++i) { for (int j = 0; j < 20; ++j) { Arry = {o}; ...

Array не выводит char - C++
Собственно не задание ни чего, хочу вывести небольшую программу с "арами", а именно - хочу что бы при введении ID 1 или 0 , выдавало Имя...

Uint в char array - C++
Привет, скажите как конвертировать for (unsigned int i = 0; i < 4294967295; i++) { char sample = "911"; //вот в таком виде из i...

9
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
26.09.2012, 09:52 #2
Погуглите "Лексикографический порядок"
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
26.09.2012, 09:54 #3
Имя массива - константный указатель на первый элемент массива. Сравниваются просто два адреса первых элементов массивов. В общих случаях данное сравнение не имеет смысла.
1
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.09.2012, 09:57 #4
Ну нет, здесь не лексикографический порядок, а сравниваются адреса данных массивов, поэтому если s = "aaa", t = "bbb", но адрес начала массива t меньше адреса s, то результатом будет t < s.

Не по теме:

опоздал

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

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

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

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

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

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

или вернее новая введенная концепция строки
1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
26.09.2012, 10:21 #8
kotleta, неверно, std::string это синоним для std::basic_string< char >.
2
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
26.09.2012, 10:22  [ТС] #9
Точно!! Соори
0
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
26.09.2012, 10:23 #10
пойду мануалы читать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 10:23
Привет! Вот еще темы с ответами:

UnicodeString to Array of char c++ builder - C++
Подскажите пожалуйста, каким образом можно посимвольно записать AnsiString в Array char. Можно так же вариант и из файла. Если не...

Ошибка char-array initialized from wide string - C++
Доброго времени суток! Вот программы, которые были выложены, одна на сайте среди уроков-примеров, другая же выложена на форуме. В обоих...

Как правильно завершить char array (Null terminated) - C++
В гугле вижу самые разные примеры. char* chs = new char; ... chs = '\0'; // Разве 128 существует ? ... delete chs; пробовал...

Созданный объект Array<char> удаляется, как только метод convert завершается - C++
Есть простенькая оболочка над массивом Array&lt;T&gt;: template&lt;typename T&gt; class Array { private: T* data; public: const...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
26.09.2012, 10:23
Ответ Создать тему
Опции темы

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