Sunteți pe pagina 1din 3

Pregtire CEX - 19 noiembrie 2011

Prof. Lucian Neagu Colegiul Costache Negruzzi Iai


lucian8aa@yahoo.com

Limbajul C++

Tema:

iruri de caractere. Aplicaii tokenize

Documentaie:

http://www.cplusplus.com/reference/clibrary/cstring/strtok/

Prezentare strtok:

Separarea entitilor.

Sintax:

char *strtok(char *s1, const char *s2);

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**

2. Nicoleta a nvat s lucreze cu fracii zecimale neperiodice, periodice simple, respectiv

periodice mixte i s transforme o fracie zecimal n fracie ordinar. Ea tie c exist


fracii zecimale i fracii ordinare ireductibile. Nicoleta are de transformat o fracie
zecimal n fracie ordinar ireductibil.
Exemplu:
Cerin: scriei un program care citete o fracie zecimal (strict pozitiv i corect scris
din punct de vedere matematic) i apoi afieaz fracia ireductibil.
Date de intrare: fiierul fractia.in conine pe o singur linie un ir de maxim 22 de
caractere reprezentnd fracia zecimal; caracterele pot fi: cifre, eventual virgula
zecimal , i parantezele ( respectiv ).
Date de ieire: fiierul fractia.out va conine dou linii: pe prima linie se va scrie
numrtorul fraciei, iar pe a doua linie se va scrie numitorul fraciei.
Exemplu:
fractia.in

fractia.out

0,3(7)

17
45

3. Aplicaii campion
a. nrcuv
b. fractie1
c. reteta
d. ecuatii

S-ar putea să vă placă și