Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Сравнение строк – strcmpДля сравнения двух строк используют функцию strcmp. Функция возвращает ноль, если строки равны (то есть «разность» между ними равна нулю) и ненулевое значение, если строки различны. Сравнение происходит по кодам символов, поэтому функция различает строчные и заглавные буквы – они имеют разные коды. char s1[] = "Вася", s2[] = "Петя"; if (0 = = strcmp(s1,s2)) printf("Строки %s и %s одинаковы", s1, s2); else printf("Строки %s и %s разные", s1, s2);
Если строки не равны, функция возвращает «разность» между первой и второй строкой, то есть разность кодов первых различных символов. Эти числа можно использовать для сортировки строк – если «разность» отрицательна, значит первая строка «меньше» второй, то есть стоит за ней в алфавитном порядке. Задача. Ввести две строки и вывести их в алфавитном порядке. #include <stdio.h> #include <string.h> void main() { char s1[80], s2[80]; printf ("Введите первую строку"); gets(s1); printf ("Введите вторую строку"); gets(s2); if (strcmp(s1,s2) <= 0) printf("%s\n%s", s1, s2); else printf("%s\n%s", s2, s1); } Иногда надо сравнить не всю строку, а только первые несколько символов. Для этого служит функция strncmp (с буквой n в середине). Третий параметр этой функции – количество сравниваемых символов. Принцип работы такой же – она возвращает нуль, если заданное количество первых символов обеих строк одинаково. char s1[80], s2[80]; printf ("Введите первую строку"); gets(s1); printf ("Введите вторую строку"); gets(s2); if (0 = = strncmp(s1, s2, 2)) printf("Первые два символа %s и %s одинаковы", s1, s2); else printf("Первые два символа %s и %s разные", s1, s2); Один из примеров использования функции strcmp – проверка пароля. Пример. Составить программу, которая определяет, сколько цифр в символьной строке. Программа должна работать только при вводе пароля «куку». #include<stdio.h> #include<string.h> main() { char pass[] = "куку", // правильный пароль s[80]; // вспомогательная строка int i, count = 0; printf ("Введите пароль "); gets(s); if (strcmp (pass, s)!= 0) { printf ("Неверный пароль"); return 1; // выход по ошибке, код ошибки 1 } printf ("Введите строку"); gets(s); i = 0; while (s[i]!= '\0') { if (s[i] >= '0' && s[i] <= '9') count ++; } printf("\nНашли %d цифр", count); } В этой программе использован тот факт, что коды цифр расположены в таблице символов последовательно от '0'до '9'.
|