Strcmp()

  • Автор темы Автор темы backspace
  • Дата начала Дата начала
B

backspace

Функция Strcmp() сравнивает строку s2 со строкой s1.Если строка s1 лексикографически меньше строки s2,возращает отрицательное число.
В смысле каждый раз любое произвольное отрицательное число?или определенное?
 
backspace
Тебе сказано что - то про определенное число? Каждый раз любое. Как правило, знать ,какое именно там число нам вообще не нужно. Просто проверяем, больше нуля или меньше.
 
Есть не проверенное подозрение, что возвращается разность сиволов, поскольку каждому символу соответсвует порядковый номер в соответсвии с таблицой ASCII, так символы можно вычитать:

C++:
cout << (int) 'z' << endl;
cout << (int) 'a' << endl;

int rez = 'z' - 'a';

Результат будет положительное число.
 
Код:
int
strcmp(s1, s2)
register const char *s1, *s2;
{
while (*s1 == *s2++)
if (*s1++ == 0)
return (0);
return (*(const unsigned char *)s1 - *(const unsigned char *)(s2 - 1));
}

:)

интересно, почему там именно (s2 - 1)?
;)
 
А зачем так тему то развили :-)
Ну глупо же, все таки сравнение булева-функция... 3 варианта =, <,>.. И все тут, больше еще впринципи использовать ни где нельзя :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!