Сравнение строк в языке C
@pavel char word[40]; scanf(«%s», &word[i]); и char **rootie; *rootie = new char[counter2]; for (int i = 0; i > counter2; i++) < for (int j = 0; j >20; j++) < fscanf(roots, "%s", rootie); >> . Ошибку выдает для word.
30 апр 2016 в 14:00
scanf(«%s», &word[i]); эм. вы ТОЧНО знаете что делаете? fscanf(roots, «%s», rootie); не представляю как оно компилируется.
30 апр 2016 в 14:06
*rootie = new char[counter2]; — я не уверен что именно это вы и хотели. Может rootie = new char* [counter2]; ? В общем советую весь код сюда выложить и внимательно посмотреть на типы данных (char char * и char **).
Как сравнивать двух строк типа string?
Для class basic_string определён метод compare().
А через него переопределены friend операторы ==, |=, >, =
Все операции могут применяться и к string и к const char* как одному из операндов.
Смысл сравнений — естественный лексографический порядок, который вы поменять (легко) не можете.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
goldstar2154 @goldstar2154
Как правило для всех классов, реализующих работу со строками (CString, std::string, QString), уже доступны перегруженные операторы сравнения <, >, == и т.д. Так же могут существовать методы сравнения с условиями, вроде CompareNoCase.
Если вы реализуете алгоритм быстрой сортировки и хотите реализовать собственные методы сравнения строк, то самым простым вариантом будет пронаследоваться от класса строк и переопределять методы сравнения.
Если вы работаете с char* то посмотрите реализацию memmcmp и strcmp
www.cplusplus.com/reference/cstring/memcmp
www.cplusplus.com/reference/cstring/strcmp
P.S. совет, не изобретайте велосипед, т.к. алгоритмы сортировки оттачивались математиками и программистами много лет. Выигрыш по быстродействию вы сможете ощутить только, если у вас очень специфичные наборы строк.
Например у всех строк первые три символа одинаковы, тогда кастомная сортировка с 4-го символа может дать выигрыш по времени.,>
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C++
Почему символ строки с индексом 0 выводит символ под индексом 1?
- 1 подписчик
- 9 часов назад
- 36 просмотров
strcmp в C/C++: разбираемся с примерами
Привет! В этой статье мы поговорим о функции strcmp , которая позволяет сравнить две строки между собой. В начале мы рассмотрим несколько примеров использования этой функции, затем реализуем её сами, а в конце вы найдете упражнения для закрепления материала.
Как сравнить строки с помощью strcmp
Для сравнения двух строк в C/C++, можно воспользоваться функцией strcmp . Эта функция доступна после подключения файла . В C++ вы можете подключить .
strcmp принимает две строки и сравнивает по очереди каждый символ между собой. Как только она находит первый символ, который различается, она вернет:
- 1 если символ в первой строк