Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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'.

Date: 2015-10-19; view: 420; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.012 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию