
11. Separarea entităţilor
char *strtok(char *s1, const char *s2);
Descriere
Caută în s1, un şir care este separat de delimitatori definiţi în sirul s2. Să numim şirul cu această proprietate entitate.
Prima apelare a funcţiei strtok caută de la începutul şirului şi returnează adresa primului caracter al entităţii determinate, apoi inserează caracterul 0 (null) la sfârşitul acestei entităţi
Urmatoarea căutare trebuie să înceapă de la caracterul nul inserat.
Valoarea returntă
Funcţia returnează adresa entităţite determinate în s1 sau o expresie de tip char* cu valoarea 0 (null) dacă nu găseşte nici o entitate.
Exemplu: Se citeşte un text care contine cuvinte separate prin spaţii, virgule sau punct. Să se afişeze cuvintele căte unul pe o linie şi să se numere cuvintele din text.
//NUMAR CUVINTE
#include <iostream.h>
#include <conio.h>
#include <string.h>
char text[101],*p,separator[]=" ,.";
int k=0;
void main()
{
clrscr();
cout<<"Introduceti textul:";
cin.get(text,100);
cout<<"\n";
p=strtok(text,separator); //determina prima entitate
while(p)
{k++;
cout<<p<<"\n";
p=strtok(NULL,separator); //determină următoarele entităţi
}
cout<<"\nNumarul de cuvinte:"<<k;
getch();
}