русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

STRCMP.


Дата добавления: 2014-11-28; просмотров: 596; Нарушение авторских прав


strcmp, strncmp - сравнение двух строк

 

СИНТАКСИС

#include <string.h>

int strcmp(const char *s1, const char *s2);

int strncmp(const char *s1, const char *s2, size_t n);

 

ОПИСАНИЕ

Функция strcmp() сравнивает две строки: s1 и s2. Она возвращает целое число, которое меньше, больше нуля или равно ему, если s1 соответственно меньше, больше или равно s2.

Функция strncmp() работает аналогичным образом, но сравнивает только первые n символов строки s1.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функции strcmp() и strncmp() возвращают целое число, которое меньше, больше нуля или равно ему, если строка s1 (или ее первые n байтов) соответственно меньше, больше или равна (равны) s2.

 

Пример программы, работающей с каталогами.

 

Данная программа сканирует каждую секунду содержимое каталога, в котором она находится. Если в этот каталог добавить новый файл, программа выдаст сообщение, содержащее имя нового файла. Если какой-либо файл удалить из данного каталога, то программа сообщит об удалённом файле. Для выхода из программы необходимо нажать Ctrl+Z

 

Текст программы:

 

#include <dirent.h> /*для работы с описателем каталога*/

#include <strings.h> /*для работы со строками*/

main()

{

struct dirent **next,**prev; /*структура с содержанием каталога*/

int n,m; /*m - старое количество файлов в каталоге, n - новое*/

int i,j;

int num;

int newfile,nofind,find; /*флаги «новый», «не найден», «старый файл»*/

newfile=0;nofind=0;find=0;num=-1;

printf("\n\n\t_D_i_r_e_c_t_o_r_y__s_p_y_\n"); /*Вывод сообщений*/

printf("\n\t Press [Ctrl]+[Z] to exit\n\n");

if((m=scandir(".",&prev,0,alphasort))<0) perror("Scandir"); /*заносим в*/

/*prev начальное содержимое каталога, а в m – количество файлов*/



while(1) /*бесконечный цикл сканирования каталога*/

{

if((n=scandir(".",&next,0,alphasort))<0) perror("Scandir"); /*заносим*/

else /*в next текущее содержание каталога, а в n – количество файлов*/

{

if(m<n) /*если m<n – добавился новый файл*/

{

for(i=0;i<n;i++) /*ищем имя нового файла*/

{

for(j=0;j<m;j++)

{

if(strcmp(prev[j]->d_name,next[i]->d_name)==0) /*совпадают*/

{

find=1;newfile=0; /*если не нашли – устанавливаем флаги*/

}

else /*если нашли устанавливаем соответствующие флаги*/

{

if(find==0) newfile=1;

else newfile=0;

}

}

if((newfile==1)&&(find==0)) num=i; /*num – номер нового файла*/

find=0;newfile=0; /*сбрасываем флаги*/

if(num>=0) /*вывод сообщения о находке*/

{

printf("\tnew file %s was added!\n",next[num]->d_name);

num=-1;

}

}

for(i=0;i<n;i++) prev[i]=next[i]; /*обновляем «историю» каталога*/

m=n;free(next); /*освобождаем буфер для содержимого каталога*/

}

if(m>n) /*если m>n – удалили файл*/

{

for(i=0;i<m;i++) /*цикл поиска недостающего файла*/

{

for(j=0;j<n;j++)

{

if(strcmp(prev[i]->d_name,next[j]->d_name)==0)

{

find=1;nofind=0; /*если нашли – устанавливаем флаги*/

}

else

{

if(find==0) nofind=1;

else nofind=0;

}

}

if((nofind==1)&&(find==0)) num=i;

find=0;nofind=0;

if(num>=0)

{ /*вывод сообщения об удалённом файле*/

printf("\tfile %s was deleted!\n",prev[num]->d_name);

num=-1;

}

}

for(i=0;i<n;i++) prev[i]=next[i]; /*обновление «истории» каталога*/

m=n;free(next); /*освобождение буфера*/

}

}

sleep(1); /*частота сканирования каталога – 1 секунда*/

}

}




<== предыдущая лекция | следующая лекция ==>
SCANDIR. | Лабораторная работа №6


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.128 сек.