[C] Stringa contenuta in un'altra.
Buonasera a tutti, vorrei porvi un problema, l'algoritmo che ho pensato e la possibile traduzione in C di questo algoritmo.
ciò che mi viene chiesto di fare è scandire due stringhe, con la seconda grande al massimo quanto la prima, e verificare se la seconda è contenuta nella prima.
ad esempio:
S1="alessandro"
S2="ssa" è contenuta in S1
S3="esa" non è contenuta in S1
cioè devono essere contigue le lettere della seconda nella prima stringa
Ciò che avevo pensato era prima di tutto acquisire la lunghezza della seconda stringa con strlen, e poi far una strncmp, man mano escludendo il carattere più a sinistra. Ma non so come tradurlo in C.
Quale potrebbe essere una possibile soluzione?
ciò che mi viene chiesto di fare è scandire due stringhe, con la seconda grande al massimo quanto la prima, e verificare se la seconda è contenuta nella prima.
ad esempio:
S1="alessandro"
S2="ssa" è contenuta in S1
S3="esa" non è contenuta in S1
cioè devono essere contigue le lettere della seconda nella prima stringa
Ciò che avevo pensato era prima di tutto acquisire la lunghezza della seconda stringa con strlen, e poi far una strncmp, man mano escludendo il carattere più a sinistra. Ma non so come tradurlo in C.
Quale potrebbe essere una possibile soluzione?
Risposte
prova a proporre il codice anche se sbagliato, noi cercheremo di chiare i punti non chiari o sbagliati.
il problema è che non ho un codice. ripeto pensavo di usare strncmp ma non so come
La funzione
char *strstr(const char *s1, const char *s2);fa al caso tuo http://pubs.opengroup.org/onlinepubs/00 ... trstr.html .
strstr mi restituirà una stringa, e cosa ci sarà in questa stringa?
<< Upon successful completion, strstr() shall return a pointer to the located string or a null pointer if the string is not found.
If s2 points to a string with zero length, the function shall return s1. >>
If s2 points to a string with zero length, the function shall return s1. >>