
11.04.2010, 15:14
|
|
Познающий
Регистрация: 13.08.2009
Сообщений: 92
С нами:
8812922
Репутация:
1
|
|
Вот не могу никак сделать задание, уже несколько дней.
Задание.
Вариант задания реализовать в виде функции, использующей для работы со строкой только указатели и операции вида *p++, p++ и т.д. Если функция возвращает строку или ее фрагмент, то это также необходимо сделать через указатель.
Функция находит в строке пары одинаковых фрагментов и возвращает указатель на первый. С помощью функции найти все пары одинаковых фрагментов.
Что я смог сделать))
PHP код:
#include <stdio.h>
#include <string.h>
#include <conio.h>
const int minlen = 3;
char *find(char *p, char *q, int len){
for(;*p!='\0';p++){
int i;
for(i=0;(q[i]!='\0')&&(q[i]==p[i]);i++)
if(i==len)
return p;
}
return NULL;
}
void allfind(char *str){
for(int len=minlen; len<strlen(str); len++){
for(int i=0; i<strlen(str)-len; i++){
char *sub = find(str, str+len+i, len);
if(sub!=NULL)
puts(sub);
}
}
}
int main()
{
clrscr();
allfind("aaabbbcccaaa");
getch();
return 0;
}
Кто поможет, +1))
|
|
|