Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- #include <cctype>
- #include <algorithm>
- using namespace std;
- void nadjiSlova(string, vector<char>&);
- void nadjiRijeci(string, vector<string>&);
- void nadjiCifre(string, vector<int>&);
- void nadjiBrojeve(string, vector<string>&);
- void razdvoji();
- void spoji();
- int main() {
- cout << "<<< Razdvajanje (analiza) >>>" << endl;
- razdvoji();
- cout << endl;
- cout << "<<< Spajanje 2 datoteke >>>" << endl;
- spoji();
- return 0;
- }
- void nadjiSlova(string linija, vector<char> &vec) {
- for (unsigned int i = 0; i < linija.length(); i++) {
- if (isalpha(linija[i])) {
- if (find(vec.begin(), vec.end(), linija[i]) == vec.end()) {
- vec.push_back(linija[i]);
- }
- }
- }
- }
- void nadjiRijeci(string linija, vector<string>& vec) {
- string rijec = "";
- bool dareForMore;
- for (unsigned int i = 0; i < linija.length(); i++) {
- if (isalpha(linija[i])) {
- rijec += linija[i];
- i++;
- dareForMore = true;
- while (dareForMore) {
- if (isalpha(linija[i])) {
- rijec += linija[i];
- i++;
- }
- else {
- dareForMore = false;
- }
- }
- if (find(vec.begin(), vec.end(), rijec) == vec.end()) {
- vec.push_back(rijec);
- }
- rijec = "";
- }
- }
- }
- void nadjiCifre(string linija, vector<int> &vec) {
- for (unsigned int i = 0; i < linija.length(); i++) {
- if (isdigit(linija[i])) {
- if (find(vec.begin(), vec.end(), linija[i] - '0') == vec.end()) {
- vec.push_back(linija[i] - '0');
- }
- }
- }
- }
- void nadjiBrojeve(string linija, vector<string>& vec) {
- string broj = "";
- bool dareForMore;
- for (unsigned int i = 0; i < linija.length(); i++) {
- if (isdigit(linija[i])) {
- broj += linija[i];
- i++;
- dareForMore = true;
- while (dareForMore) {
- if (isdigit(linija[i])) {
- broj += linija[i];
- i++;
- }
- else {
- dareForMore = false;
- }
- }
- if (find(vec.begin(), vec.end(), broj) == vec.end()) {
- vec.push_back(broj);
- }
- broj = "";
- }
- }
- }
- void razdvoji() {
- string linija;
- vector<char> slova;
- vector<int> cifre;
- vector<string> rijeci, brojevi;
- ifstream fajl ("txt.txt");
- if (fajl.is_open()) {
- while (fajl.good()) {
- getline(fajl, linija);
- nadjiSlova(linija, slova);
- nadjiRijeci(linija, rijeci);
- nadjiCifre(linija, cifre);
- nadjiBrojeve(linija, brojevi);
- }
- }
- fajl.close();
- cout << "Slova: ";
- for (unsigned int i = 0; i < slova.size(); i++) {
- cout << slova[i] << " ";
- }
- cout << endl;
- cout << "Rijeci: ";
- for (unsigned int i = 0; i < rijeci.size(); i++) {
- cout << rijeci[i] << " ";
- }
- cout << endl;
- cout << "Cifre: ";
- for (unsigned int i = 0; i < cifre.size(); i++) {
- cout << cifre[i] << " ";
- }
- cout << endl;
- cout << "Brojevi: ";
- for (unsigned int i = 0; i < brojevi.size(); i++) {
- cout << brojevi[i] << " ";
- }
- cout << endl;
- }
- void spoji() {
- string linija;
- vector<char> slova;
- fstream fajl ("txt1.txt", ios::in);
- if (fajl.is_open()) {
- while (fajl.good()) {
- getline(fajl, linija);
- nadjiSlova(linija, slova);
- }
- }
- fajl.close();
- fajl.open("txt2.txt", ios::in);
- if (fajl.is_open()) {
- while (fajl.good()) {
- getline(fajl, linija);
- nadjiSlova(linija, slova);
- }
- }
- fajl.close();
- fajl.open("rez.txt", ios::out);
- if (fajl.is_open()) {
- fajl << "Rezultat analize: ";
- for (unsigned int i = 0; i < slova.size(); i++) {
- fajl << slova[i] << " ";
- }
- }
- fajl.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement