Strcmp c что это
Функция strcmp сравнивает указанную строку с другой строкой, на которую указывает параметр s2. Функция учитывает регистр символов.
Синтаксис
Параметры
Указатель на первую сравниваемую строку.
Указатель на вторую сравниваемую строку.
Возвращаемое значение
Функция возвращает целочисленное значение:
— больше нуля, если первая строка больше второй;
— 0 (нуль), если строки равны;
— меньше нуля, если первая строка меньше втрой.
Смотри также
Библиотека стандартных функций С.
Функция объявлена в заголовочном файле string.h
Функции strcmp , wcscmp , _mbscmp
Функции сравнивают строки.
Синтаксис
Параметры
string1, string2
Строки с завершающим нулем, для сравнения.
Возвращаемое значение
Возвращаемое значение для каждой из этих функций указывает лексикографическое соотношение строки string1 к строке string2.
Значение
Соотношение string1 к string2
При ошибке функция _mbscmp возвращает значение _NLSCMPERROR , которое определяется в заголовочных файлах STRING.H и MBSTRING.H.
Замечания
Функция strcmp сравнивает строки string1 и string2 лексикографически и возвращает значение, служащее признаком их взаимозависимости. Функции wcscmp и _mbscmp — это широкосимвольная и состоящяя из многобайтовых символов версии функции strcmp. Параметры и возвращаемое значение wcscmp — широкосимвольные строки; таковые для _mbscmp являются состоящими из многобайтовых символов строками. _mbscmp распознает состоящие из многобайтовых символов последовательности согласно текущей многобайтовой кодовой странице и возвращает значение _NLSCMPERROR при ошибке. (Для получения дополнительной информации, см. Кодовые страницы). Иначе эти три функции ведут себя тождественно.
Унифицированно-текстовые стандартные отображения
процедура TCHAR.H
_UNICODE & _MBCS не определяется
определяется как _MBCS
определяется как _UNICODE
Функции strcmp отличаются от функций strcoll тем, что на сравнения при помощи strcmp, не оказывает влияния язык страны (местности), тогда как манера сравнений при помощи strcoll определяется категорией LC_COLLATE текущего языка страны. Дополнительную информацию о категории LC_COLLATE , см. описание функции setlocale.
В "C" язык страны (местности) определяет порядок символов в символьном наборе (символьный набор ASCII) такой же, что и лексикографический символьный порядок(очередность). Однако, в языках других стран, порядок символов в символьном наборе может отличаться от лексикографического порядка( очередности). Например, в некоторых европейских языках, символ ‘a’ (значение 0x61) предшествует символу ‘ä’ (значение 0xE4) в символьном наборе, но символ ‘ä’ предшествует символу ‘a’ лексикографически.
В языках страны (местности) для которых символьный набор и лексикографический символьный порядок (их очередность) различаются, используют функцию strcoll, а не strcmp для лексикографического сравнения строк согласно параметру категории LC_COLLATE текущего языка страны. Таким образом, чтобы выполнить лексикографическое сравнение языка страны в вышеупомянутом примере, используйте strcoll, а не strcmp. Альтернативно, Вы можете использовать функцию strxfrm исходных) строк, а затем использовать strcmp на получающихся строках.
Функции _stricmp, _wcsicmp, и _mbsicmp сравнивают строки первым преобразованием их к их формам нижнего регистра. Две строки, содержащие в себе символы, расположенные между ‘Z’ и ‘a’ в таблице ASCII (‘[‘, ‘\’, ‘]’, ‘^’, ‘_’, и ‘`’), сравниваются по-разному, в зависимости от их регистра. Например, две строки, "ABCDE" и "ABCD ^" сравниваются одним способом, если сравнение идет в нижнем регистре ("abcde"> "abcd ^") и другим способом ("ABCDE" <"ABCD ^"), если сравнение — в верхнем регистре.
Пример
Вывод
Смотри также
Программы преобразования строк | memcmp | _memicmp | strcoll, Функции | _stricmp | strncmp | _strnicmp | strrchr | strspn | strxfrm | Подпрограммы Исполняющей среды и Эквиваленты .NET_Framework
Требования
Подпрограмма
Необходимый заголовочный файл
Совместимость
Дополнительную информацию о совместимости, см. в статье Совместимость во Введении.
Функция strcmp
Эта функция сравнивает символы двух строк, string1 и string2 . Начиная с первых символов функция strcmp сравнивает поочередно каждую пару символов, и продолжается это до тех пор, пока не будут найдены различные символы или не будет достигнут конец строки.
Параметры:
- string1
Первая сравниваемая Си-строка. - string2
Вторая сравниваемая Си-строка.
Возвращаемое значение
Функция возвращает несколько значений, которые указывают на отношение строк:
Нулевое значение говорит о том, что обе строки равны.
Значение больше нуля указывает на то, что строка string1 больше строки string2 , значение меньше нуля свидетельствует об обратном.
Функция strcmp начинает сравнивать по одному символу и как только будут найдены первые неодинаковые символы, функция проанализирует числовые коды этих символов. Чей код окажется больше, та строка и будет считаться большей.
Strcmp c что это
In C language, the <string.h> header file contains the Standard String Library that contains some useful and commonly used string manipulation functions. One such function is strcmp() which compares two strings in C.
What is strcmp() in C?
C strcmp() is a built-in library function that is used for string comparison. This function takes two strings (array of characters) as arguments, compares these two strings lexicographically, and then returns 0,1, or -1 as the result. It is defined inside <string.h> header file with its prototype as follows:
Syntax of strcmp() in C
Parameters of strcmp() in C
This function takes two strings (array of characters) as parameters:
- first_str: First string is taken as a pointer to the constant character (i.e. immutable string).
- second_str: Second string is taken as a pointer to a constant character.
Note: The reason arguments are taken as const char * instead of only char * is so that the function could not modify the string and also make them applicable for constant strings.
Return Value of strcmp() in C
The strcmp() function returns three different values after the comparison of the two strings which are as follows:
1. Zero ( 0 )
A value equal to zero when both strings are found to be identical. That is, all of the characters in both strings are the same.
2. Greater than Zero ( > 0 )
A value greater than zero is returned when the first not-matching character in first_str has a greater ASCII value than the corresponding character in second_str or we can also say that if the character in first_str is lexicographically after the character of second_str, then zero is returned.
3. Lesser than Zero ( < 0 )
A value less than zero is returned when the first not-matching character in first_str has a lesser ASCII value than the corresponding character in second_str. We can also say that if the character in first_str is lexicographically before the character of second_str, zero is returned.
To know more about ASCII values, refer to this article – ASCII Table
How to use the strcmp() function in C
The following example demonstrates how to use the strcmp() function in C:
The strcmp() Function in C
The strcmp() function is used to compare two strings two strings str1 and str2 . If two strings are same then strcmp() returns 0 , otherwise, it returns a non-zero value.
This function compares strings character by character using ASCII value of the characters. The comparison stops when either end of the string is reached or corresponding characters are not same. The non-zero value returned on mismatch is the difference of the ASCII values of the non-matching characters of two strings.
Let's see how strcmp() function compare strings using an example.
Here we have two strings str1 = "jkl" and str2 = "jkq" . Comparison starts off by comparing the first character from str1 and str2 i.e 'j' from "jkl" and 'j' from "jkm" , as they are equal, the next two characters are compared i.e 'k' from "jkl" and 'k' from "jkm" , as they are also equal, again the next two characters are compared i.e 'l' from "jkl" and 'q' from "jkm" , as ASCII value of 'q' ( 113 ) is greater than that of 'l' ( 108 ), Therefore str2 is greater than str1 and strcmp() will return 5 ( i.e 113-108 = 5 ).
It is important to note that not all systems return difference of the ASCII value of characters, On some systems if str1 is greater than str2 then 1 is returned. On the other hand, if str1 is smaller than str2 then -1 is returned. It is more likely that you will encounter this behaviour on your system.