|
Pazi ovako, zadatak nije dovoljno precizno definisan, tako da rešenje nije jedinstveno.
Elem, može i da se radi na način na koji si ti odabrao, tj. tako da se briše karakter iz stringa s1 na i-toj poziciji ukoliko se isti taj karakter nalazi na i-toj poziciji u string s2. E sad, u samom telu petlje treba da imaš tri pokazivača p, q i recimo r. p pokazuje na tekući karakter (karakter koji upoređuješ) stringa s1, q na tekući karakter stringa s2, a r na poziciju u s1 na koju je potrebno smestiti karakter, isti karakter ukoliko je *p != *q, dok ukoliko je *p == *q ne radiš ništa već prelaziš na sledeći karakter (inkrementiraju se p i q). Na kraju svega toga je potrebno zatvoriti string s1 kako ne bi štampao preostale karaktere. Kod je ovakav:
#include <stdio.h>
#include <stdlib.h>
char *squeeze(char *, char *);
int main(void)
{
static char s1[] = { "Ja sam Viktor Prgomet." };
static char s2[] = { "Ja imam 14 godina." };
printf("%s\n", squeeze(s1, s2));
system("PAUSE");
return EXIT_SUCCESS;
}
char *squeeze(char *s1, char *s2)
{
char *p, *q, *r;
for (r = p = s1, q = s2; *p != '\0'; p++, q++) {
if (*p != *q)
*r++ = *p;
}
*r = '\0';
return s1;
}
|