Cerința
Se consideră un fişier care conţine informaţii despre mai multe persoane, sub o formă nestructurată. Informaţiile sunt dispuse pe linii de maxim 200
de caractere şi pot conţine CNP-uri valide. Ştiind că CNP-ul unei persoane este un şir de exact 13
cifre consecutive, scrieţi un program care determină şi scrie în fişierul de ieșire, pe linii distincte, toate CNP-urile extrase din text. Dacă în fișierul de intrare nu se află niciun CNP, în fișierul de ieșire se va afișa numai valoarea 0
.
Date de intrare
Fișierul de intrare cnp.in
conține informațiile date.
Date de ieșire
Fișierul de ieșire cnp.out
va conține CNP-urile determinate, câte unul pe o linie, sau valoarea 0
dacă în fișierul de intrare nu există CNP-uri.
Exemplul 1
cnp.in
Popescu Grigore, 14 ani, 1991212122334;Gigel Banu - 1031102453435, Bujorului 7;Dana Marin: 2690405358687, fara viza, 2450609987654 -Jane Doe
cnp.out
1991212122334103110245343526904053586872450609987654
Exemplul 2
cnp.in
Popescu Grigore, 14 ani, 1991212134;Gigel Banu - 103110245Bujorului 7;Dana Marin: 269-04-05-358687, fara viza, 2+450609+987654 -Jane Doe
cnp.out
0
#include <bits/stdc++.h> using namespace std; ifstream cin("cnp.in"); ofstream cout("cnp.out"); int main() { char s[200]; int cnt=0; while(cin >> s) { int i = 0; int c = 0; while(s[i]!='\0') { if(s[i]!='0' && s[i]!='1' && s[i]!='2' && s[i]!='3' && s[i]!='4' && s[i]!='5' && s[i]!='6' && s[i]!='7' && s[i]!='8' && s[i]!='9') { c=0; } else c++; if(c==13 && s[i+1]!='0' && s[i+1]!='1' && s[i+1]!='2' && s[i+1]!='3' && s[i+1]!='4' && s[i+1]!='5' && s[i+1]!='6' && s[i+1]!='7' && s[i+1]!='8' && s[i+1]!='9') break; i++; } int j = i - 13 + 1; if(c==13) cnt++; if(c==13) { while(j <= i) { cout << s[j]; j++; } cout << endl; } } if(cnt==0) cout << 0; return 0; }