Strcmp() Ошибка

288
21 августа 2017, 09:56

Не понимаю, в чем проблема. В справочниках сказано, что функция 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

Answer 1

В справочниках сказано, что функция strcmp(str1,str2), если str1 > str2, то компилятор вернет значение > 0

Ну так это и происходит. Первая строка начинается на v, а вторая на a, соответственно первая строка больше и функция возвращает положительное значение. У тебя это 1, а на ideone 21 - и всё как написано.

За исключением того, что значение возвращает функция, а не компилятор.

READ ALSO
Как вывести текст в любую часть экрана?

Как вывести текст в любую часть экрана?

Необходимо вывести текст в координаты x, y на дисплей,Не в само окошко программы, а на desktop, любое другое окно других программ по заданным координатам...

413
Как установить библиотеку openssl

Как установить библиотеку openssl

Устанавливаю openssl(версия 11

429
Pascal мне нужно перевести ее на C++. п [требует правки]

Pascal мне нужно перевести ее на C++. п [требует правки]

Само условие задачи такое :Дано целое четырехзначное числоОпределить, какая сумма больше - первой пары цифр числа или второй пары

309