Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2014, 18:26   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Функция strcmp[C++]

На каком принципе основывается работа функции по сравнению строк ?
Нужен алгоритма,для самостоятельного написания.
Я так понимаю,что нужно сравнивать посимвольно две строки,если все символы одинаковые то и строки равны,а как тогда узнать,какая строка больше или меньше ?
Или нужно сравнивать строки по ее размеру ?

Последний раз редактировалось spectrum988; 08.11.2014 в 18:32.
spectrum988 вне форума Ответить с цитированием
Старый 08.11.2014, 18:53   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
а как тогда узнать,какая строка больше или меньше ?
Или нужно сравнивать строки по ее размеру ?
если стр1[і] > стр2[і], то стр1 > стр2, и цикл прерывается.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.11.2014, 18:55   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А подсмотреть ассемблерный код ее или если есть исходный код не желаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2014, 19:05   #4
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Цитата:
иначе (при равных длинах строк) если стр1[і] > стр2[і], то стр1 > стр2, и цикл прерывается.
Немного не понял вот эту вот часть. Если каждый символ s равен каждому символу s1 то s=s1.
А из чего тогда будут исходить равенства s>s1 и s<s1;

Цитата:
Сообщение от Stilet Посмотреть сообщение
А подсмотреть ассемблерный код ее или если есть исходный код не желаешь?
Конечно,желаю.

Последний раз редактировалось Stilet; 08.11.2014 в 19:16.
spectrum988 вне форума Ответить с цитированием
Старый 08.11.2014, 19:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Конечно,желаю.
И? В чем сложности?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2014, 19:18   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Немного не понял
так не бывает.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.11.2014, 19:19   #7
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Ясно,спасибо.
spectrum988 вне форума Ответить с цитированием
Старый 08.11.2014, 19:28   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

http://www.cplusplus.com/reference/cstring/strcmp/
PHP код:
return value indicates
<0           the first character that does not match has a lower value in ptr1 than in ptr2
0            
the contents of both strings are equal
>0           the first character that does not match has a greater value in ptr1 than in ptr2 
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.11.2014, 19:32   #9
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

BDA,большое спасибо,разобрался.
spectrum988 вне форума Ответить с цитированием
Старый 08.11.2014, 19:45   #10
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Цитата:
На каком принципе основывается работа функции по сравнению строк ?
Функция сравнивает символы под одинаковыми индексами двух строк, и если символ первой строки в качестве аргумента в алфавите первей символа под тем же индексом второй строки, функция возвращает число с "-", если наоборот соответственно "+", если строки равны - 0, если строки равны, но одна из них длинней - поэксперементируй))
Аналог функции может быть таким
Код:
int comparison (char Ar1[], char Ar2[])
{
    for (int i = 0.......)
        if ( Ar1[i] > Ar2[i]) ........ 
}

Последний раз редактировалось igoreshka3333; 08.11.2014 в 19:48.
igoreshka3333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Asm аналог strcmp NewLamer&Programer Помощь студентам 42 18.06.2013 22:16
Сравнение строк через strcmp(), Си++ Evielle Помощь студентам 12 28.04.2012 17:14
strcmp,strcasecmp kilogram Общие вопросы Delphi 2 10.04.2012 20:31
Функция strcmp bot.bat Помощь студентам 12 23.11.2011 16:16
Функция strcmp() ts-alan Общие вопросы C/C++ 4 04.09.2010 23:00