Найти и вывести на экран последовательности из семи элементов, начинающихся на 123 - C (СИ)
Формулировка задачи:
найти и вывести на экран последовательности из семи элементов начинающихся на 123****
Решение задачи: «Найти и вывести на экран последовательности из семи элементов, начинающихся на 123»
textual
Листинг программы
#include <stdio.h>
char* find_seq(char* s, char** e, const char* t){
const char* a, *b;
char* p = NULL;
while(*s){
a = s;
b = t;
while(*a && *b){
if((*b != '*') && (*b != *a))
break;
++a;
++b;
}
if(!*b){
p = s;
*e = (char*)a;
break;
}
++s;
}
return p;
}
int main(void){
char* p, *e;
char s[] = "1234567, apl, (123PERL), 123ABCD, bla-bla, 123FFFF, 1234";
for(p = &s[0]; (p = find_seq(p, &e, "123****")) != NULL; ){
while(p != e)
putchar(*p++);
putchar('\n');
}
return 0;
}
Объяснение кода листинга программы
- В функции
find_seqищется последовательность из семи элементов, начинающихся на123. - В функции
mainопределен массивs, содержащий строки, в которых нужно найти последовательности. - С помощью цикла
forи функцииfind_seqпоследовательности ищутся в массивеs. - Если последовательность найдена, то с помощью цикла
whileэлементы последовательности выводятся на экран, после чего выводится символ новой строки. - В конце программы возвращается значение 0, что означает успешное выполнение программы.