Сравнение строк с помощью функции strcmp
Функция strcmp в языке программирования C предназначена для сравнения двух строк и определения их относительного порядка в лексикографическом смысле. Данная функция осуществляет сравнение посимвольно, начиная с первого символа каждой строки, и возвращается разница между ASCII значением символов, если строки отличаются. Если обе строки равны, функция возвращает 0.
Представим, что у нас есть две строки str1 и str2. Чтобы использовать функцию strcmp, нам нужно подключить заголовочный файл string.h. Вот пример кода:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmp(str1, str2);
if(result < 0) {
printf("Строка 1 меньше строки 2\n");
}
else if(result > 0) {
printf("Строка 2 меньше строки 1\n");
}
else {
printf("Строки равны\n");
}
return 0;
}
В данном примере сравниваются строки "Hello" и "World". Обратите внимание, что строковые литералы должны быть заключены в двойные кавычки, а в случае использования символьных массивов, к которым ссылается указатель, мы используем квадратные скобки ([ ]).
Затем мы вызываем функцию strcmp и передаем ей обе строки в качестве аргументов. Возвращаемое значение функции сохраняем в переменной result.
После этого происходит проверка значения переменной result. Если result < 0, это означает, что строка str1 меньше строки str2 в лексикографическом порядке. Если result > 0, это означает, что строка str2 меньше строки str1. Если result равно 0, строки совпадают.
В данном случае, поскольку "Hello" и "World" различаются по первому символу, результат будет отрицательным, и на экран будет выведено сообщение "Строка 1 меньше строки 2".
В дополнение к примеру выше, функция strcmp является чувствительной к регистру, что означает, что она учитывает различия между строчными и прописными буквами. Так, если у нас есть строки "hello" и "Hello", результат сравнения будет отличаться от нуля, потому что символ 'h' имеет разные ASCII-коды в верхнем и нижнем регистрах.
Надеюсь, данный развернутый ответ позволяет понять, как использовать функцию strcmp в языке C. Если у вас возникнут еще вопросы, не стесняйтесь задавать их!