Mam problem z kodem i potrzebuję Twojej pomocy! Muszę napisać funkcję, która wyodrębni adres internetowy zaczynający się od www.
i kończy się na .edu
z wprowadzonego łańcucha. Wprowadzony ciąg nie będzie zawierał spacji, więc powinien on dobrze działać.Wyodrębnianie adresów internetowych z ciągu znaków w C
Na przykład:
http://www.school.edu/admission
. Wyodrębniony adres powinien być www.school.edu
.
Oto, do czego do tej pory doszedłem, to oczywiście nie zadziałało i niestety nie mogę wymyślić nic innego.
void extract(char *s1, char *s2) {
int size = 0;
char *p, *j;
p = s1;
j = s2;
size = strlen(s1);
for(p = s1; p < (s1 + size); p++) {
if(*p == 'w' && *(p+1) == 'w' && *(p+2) == 'w' && *(p+3) == '.'){
for(p; p < (p+4); p++)
strcat(*j, *p);
}
else if(*p=='.' && *(p+1)=='e' && *(p+2)=='d' && *(p+3)=='u'){
for(p; (p+1) < (p+4); p++)
strcat(*j, *p);
}
}
size = strlen(j);
*(j+size+1) = '\0';
}
Funkcja musi użyć wskaźnika arytmetyki. Błędy, które otrzymuję, mają coś wspólnego z niekompatybilnymi typami i rzutowaniem. Dzięki!
Proszę podać ** pełny ** komunikat o błędzie w pytaniu. To by nam bardzo pomogło. –
Przekazywanie danych 'char' do' strcat() 'nie jest dobrym pomysłem. – MikeCAT
'p <(p + 4)' i '(p + 1) <(p + 4)' są zawsze prawdziwe, jeśli są zdefiniowane. – MikeCAT