Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
if (p==r) return 0;<br />
else {<br />
strncpy(tok,r,p-r); tok[p-r]=0;<br />
return p;<br />
}<br />
}<br />
// utilizare functie<br />
int main () {<br />
char lin[]=" unu doi trei patru ";<br />
char * p=lin; char t[256];<br />
while ( p=stok(p,t)) // de la adresa p extrage cuvant in t<br />
puts(t); // afisare cuvant<br />
}<br />
In al doilea caz sunt mai multi separatori posibili decât caractere admise <strong>în</strong>tr-un<br />
atom; un exemplu este un sir de cifre zecimale sau un sir de litere (mari si mici) si<br />
separat de alte numere sau nume prin oricare alte caractere. Extragerea unui sir de<br />
cifre sau de litere trebuie realizatã de programator, care poate folosi functiile pentru<br />
determinarea tipului de caracter, declarate <strong>în</strong> fisierul antet . Exemplu:<br />
// extragere cuvinte formate numai din litere<br />
int main ( ) {<br />
char linie[80], nume[20], *adr=linie; int i;<br />
gets(linie);<br />
while (*adr) {<br />
// ignora alte caractere decât litere<br />
while (*adr && !isalpha(*adr)) ++adr; // isalpha declarat in <br />
if (*adr==0) break; // daca sfarsit de linie<br />
for (i=0; isalpha(*adr); adr++, i++)<br />
nume[i]=*adr; // extrage cuvant in “nume”<br />
nume[i]=0; // terminator de sir C<br />
puts (nume); // afiseaza un nume pe o linie<br />
}<br />
}<br />
Cãutarea si <strong>în</strong>locuirea de siruri<br />
Orice editor de texte permite cãutarea tuturor aparitiilor unui sir si, eventual,<br />
<strong>în</strong>locuirea lor cu un alt sir, de lungime mai micã sau mai mare. De asemenea, existã<br />
comenzi ale sistemelor de operare pentru cãutarea unui sir <strong>în</strong> unul sau mai multe<br />
fisiere, cu diferite optiuni (comanda “Find” <strong>în</strong> MS-DOS si MS-Windows).<br />
Cãutarea de cuvinte complete poate folosi functiile “strtok” si “strcmp”, iar<br />
cãutarea de subsiruri <strong>în</strong> orice context (ca pãrti de cuvinte) poate folosi functia “strstr”.<br />
In secventa urmãtoare se cautã si se <strong>în</strong>locuiesc toate aparitiile sirului s1 prin sirul s2<br />
<strong>în</strong>tr-o linie de text, memoratã la adresa “line”:<br />
while(p=strstr(line,s1)) { // adresa lui s1 <strong>în</strong> line