Documente Academic
Documente Profesional
Documente Cultură
Pregătire CEX - 19 Noiembrie 2011: Limbajul C++
Pregătire CEX - 19 Noiembrie 2011: Limbajul C++
Limbajul C++
Tema:
Documentaie:
http://www.cplusplus.com/reference/clibrary/cstring/strtok/
Prezentare strtok:
Separarea entitilor.
Sintax:
Descriere:
caut n s1, un ir care este separat de delimitatorii definii n irul s2;
numim irul cu aceast proprietate entitate; prima apelare a funciei strtok caut de la nceputul
irului i returneaz adresa primului caracter al entitii determinate, apoi insereaz caracterul 0
(null) la sfritul acestei entiti; urmtoarea cutare trebuie s nceap de la caracterul null
inserat.
Valoarea returnat: funcia returneaz adresa entitii determinate n s1 sau o expresie de tip
char* cu valoarea 0 (null) dac nu se gsete nicio entitate.
Exemplu: Se citete din fiierul fraza.in un text de lungime maxim 888 care conine cuvinte
separate prin spaii, virgule sau punct. S se afieze n fiierul fraza.out cuvintele cte unul pe o
linie i s se numere cuvintele din text.
fraza.in
A fost odata o imparateasa si intr-o iarna, ... , Alba ca Zapada si cei sapte pitici au ...
#include<fstream.h>
#include<string.h>
ifstream fin("fraza.in");
ofstream fout("fraza.out");
char poveste[888];
char *pch;
int c;
int main()
{
fin.getline(poveste,888);
pch = strtok(poveste," ,.");
while (pch != NULL)
{
fout << pch << "\n";
pch = strtok (NULL, " ,.");
c++;
}
fout << c;
fraza.out
A
fost
odata
o
imparateasa
si
intr-o
iarna
Alba
ca
Zapada
si
cei
sapte
pitici
au
16
return 0;
}
Probleme propuse:
1. Un ir cu maximum 255 de caractere conine cuvinte formate numai din litere mici ale
alfabetului englez. Fiecare cuvnt este urmat de un caracter *. Scriei un program C/C++
care citete un astfel de ir i afieaz pe ecran irul obinut prin eliminarea tuturor
apariiilor primului cuvnt, ca n exemplu:
- pentru irul:
bine*albine*foarte*bine*
- se va afia:
*albine*foarte**
fractia.out
0,3(7)
17
45
3. Aplicaii campion
a. nrcuv
b. fractie1
c. reteta
d. ecuatii