Manipularea avansată a sirurilor
Când elimini caractere dintr-un sir, o tehnică frecventă este folosirea strcpys+i,s+i+1 care "șterge" caracterul de la poziția i prin suprascriere cu restul sirului. Această operație trebuie folosită cu atenție în bucle, deoarece lungimea sirului se modifică.
Pentru iterarea prin sir și manipularea caracterelor specifice, putem folosi bucle combinate cu funcții precum strchr. De exemplu, pentru eliminarea vocalelor:
while (i<strlen(s))
if (strchr("aeiou", s[i]) != NULL)
strcpy(s+i, s+i+1);
else
i++;
Compararea sirurilor se realizează cu strcmp(s1, s2), care returnează 0 dacă sirurile sunt identice, o valoare negativă dacă s1 este lexicografic mai mic decât s2, sau o valoare pozitivă în caz contrar.
Când modifici un sir în timpul iterării, trebuie să fii atent la actualizarea indexurilor. Dacă elimini un caracter, nu trebuie să incrementezi indexul, deoarece următorul caracter s-a mutat deja la poziția curentă.
💡 După fiecare operație care modifică un sir, verifică dacă trebuie să actualizezi și alți indici sau contori!