Ho problemi con il mio codice e ho bisogno del vostro aiuto! Quello che devo fare è scrivere una funzione che estrae l'indirizzo web che inizia da www.
e termina con .edu
da una stringa immessa. La stringa inserita non avrà spazi al suo interno, quindi scanf()
dovrebbe funzionare bene qui.Estrazione di indirizzi Web da una stringa in C
Ad esempio:
http://www.school.edu/admission
. L'indirizzo estratto dovrebbe essere www.school.edu
.
Questo è quello che ho inventato finora, ovviamente non ha funzionato, e non posso pensare ad altro, sfortunatamente.
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';
}
La funzione deve utilizzare puntatori. Gli errori che ho hanno a che fare con tipi e casting incompatibili. Grazie in anticipo!
Si prega di includere il messaggio di errore ** completo ** nella domanda. Questo ci aiuterebbe molto. –
Il passaggio dei dati 'char' a' strcat() 'non è una buona idea. – MikeCAT
'p <(p + 4)' e '(p + 1) <(p + 4)' sono sempre veri se sono definiti. – MikeCAT