Miałem napisać program, który wyszuka zadany ciąg znaków w pliku tekstowym.
Jeśli ktoś wie jak napisać taki program, to bardzo proszę o pomoc, bo to mój pierwszy projekt i nie chciałbym go zawalić...
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#define BUFFSIZE 1024
char buf[BUFFSIZE];
void szukaj(char *fraza, int buflen);
int main (int argc, char *argv[])
{
int inf, bajty;
if (argc != 3)
{
printf("Skladnia: program plik tekst\n");
exit(1);
}
if ((inf=open(argv[1], O_RDOLNY))<0)
{
printf("Nie moge otworzyc pliku %s.\n",argv[1]);
exit(1);
}
while((bajty=read(inf,buf,BUFFSIZE))>0)
szukaj(argv[2],bajty);
close(inf);
return(0);
}
void szukaj(char *fraza, int buflen)
{
char *ptr, *p;
ptr=buf;
while((ptr=*memchr(void *ptr,fraza[0],buflen))!=NULL) //podobno gdzieś tutaj jest błąd, ale nie wiem jaki
if(memcmp(ptr,fraza,strlen(fraza))==0)
{
printf("Pierwsze wystapienie tekstu:\n");
for(p=ptr-20;p<ptr+20;p++)
putchar(*p);
return;
}
else ptr++;
printf("Nie znaleziono tekstu: %s.\n", fraza);
}