Не понимаю, в чем проблема. В справочниках сказано, что функция strcmp(str1,str2), если str1 > str2, то компилятор вернет значение > 0 , если str1 < str2, то значение < 0 , если идентичны, вернет 0. Помимо 0, у меня все получается наоборот. Дело не в длине слова. Например, когда в слове одинаковое количество букв и значение первой буквы при идентичных остальных меньше значения второй, компилятор возвращает наоборот, при str1 < str2 " > 0" , при str1 > str2 , " < 0" . Пример приведен картинкой.
#include<iostream>
#include<cstring>
using namespace std ;
int main ()
{
int a , v , z , q;
char str1 [] = "vzqa" ;
char str2 [] = "azqa" ;
cout << strcmp(str1,str2) << endl ;
}
Вот код. Результат >0 , хотя при верном раскладе <0
В справочниках сказано, что функция strcmp(str1,str2), если str1 > str2, то компилятор вернет значение > 0
Ну так это и происходит. Первая строка начинается на v, а вторая на a, соответственно первая строка больше и функция возвращает положительное значение. У тебя это 1, а на ideone 21 - и всё как написано.
За исключением того, что значение возвращает функция, а не компилятор.
Продвижение своими сайтами как стратегия роста и независимости