|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.05.2016, 19:48 | #1 |
Новичок
Джуниор
Регистрация: 23.05.2016
Сообщений: 2
|
Реализовать поиск( командная строка)
создадим программу так, чтобы эта комбинация указывалась в качестве первого аргумента строки.
#DEFINE MAXLINE 1000 MAIN(INT ARGC, CHAR *ARGV) /* FIND PATTERN FROM FIRST ARGUMENT */ { CHAR LINE[MAXLINE]; IF (ARGC != 2) PRINTF ("USAGE: FIND PATTERN\N"); ELSE WHILE (GETLINE(LINE, MAXLINE) > 0) IF (INDEX(LINE, ARGV[1] >= 0) PRINTF("%S", LINE); } Здесь функция INDEX(S, T) возвращает позицию, или индекс, строки S, где начинается строка T, и -1, если S не содержит T . Что-то в этом роде: INDEX(CHAR S[],CHAR T[]) /* RETURN INDEX OF T IN S,-1 IF NONE */ { INT I, J, K; FOR (I = 0; S[I] != '\0'; I++) { FOR(J=I, K=0; T[K] !='\0' && S[J] == T[K]; J++; K++) ; IF (T[K] == '\0') RETURN(I); } RETURN(-1); } на Си |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Командная строка | dzuga | Windows | 4 | 23.02.2015 23:52 |
командная строка | NeLIN | Общие вопросы C/C++ | 2 | 11.07.2013 13:02 |
Командная строка | Naruto63 | Помощь студентам | 0 | 22.05.2011 16:34 |
Командная строка | Morphling | Помощь студентам | 9 | 01.02.2010 00:27 |
Командная строка | Dj_smart | Свободное общение | 2 | 23.08.2008 20:12 |