Информатика и технология программирования

       

Результат функции - указатель на строку


Функция, возвращающая указатель, может " отметить" им место в последовательности переменных (массиве) с интересующими вызывающую программу свойствами. Для функций, работающий со строками - это естественный способ возврата результата, когда в строке производится поиск чего-либо. В отсутствии найденного элемента возвращается NULL. Пример - функция, возвращающая указатель в строке на заданный фрагмент. При помощи такой функции можно организовать итерационный цикл поиска всех фрагментов такого вида. В этом случае в вызывающей программе необходим цикл, в котором в первый раз функция вызывается с указателем на начало строки, а при повторении цикла - с указателем на первый символ за фрагментом , найденном на текущем шаге - s+strlen(q).


//------------------------------------------------------bk41-01.cpp


// Поиск в строке заданного фрагмента


char * find(char *p,char *q)
{ char *s1,*s2;
for (; *p!='\0'; p++)
{
for (s1=p, s2=q; *s2!='\0' &#38&#38 *s1==*s2; s1++,s2++);
if (*s2 == '\0') return p;
}
return NULL;}
// Поиск всех вхождений фрагмента в строке


void main()
{ char c[80],*q= SYMBOL 34 \f "Courier New" \s 10 abc SYMBOL 34 \f "Courier New" \s 10 , *s;
cin.getline(c,80);
for (s=find(c,q); s!=NULL; s=find(s+strlen(q),q))
cout &#60&#60 s;
}



Содержание раздела