Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma hdrstop
- #pragma argsused
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- using namespace std;
- class CText {
- int strs;
- vector<string> s;
- int seps_col;
- char seps[5];
- public:
- void get_seps();
- void get_first();
- void read();
- void write();
- bool is_sep(char ch);
- void processing();
- void replace();
- };
- void CText::get_seps() {
- cout << "Enter number of separators" << endl;
- cin >> seps_col;
- cout << "Enter separators" << endl;
- for (int i = 0; i < seps_col; i++)
- cin >> seps[i];
- }
- void CText::get_first() {
- string str;
- cout << "Enter string to insert as first or enter \"-_-\" to skip" << endl;
- cin >> str;
- cout << str << endl;
- if (str != "-_-") {
- strs++;
- s.insert(s.begin(), str);
- }
- }
- void CText::read() {
- ifstream in("input.txt");
- strs = 0;
- char ch;
- int prev = 0;
- int k = 0;
- string str;
- in.get(ch);
- while (in) {
- if (ch != '\n')
- str += ch;
- else {
- s.push_back(str);
- strs++;
- if (prev == str.size()) k++;
- else k = 0;
- if (k == 4) {
- str.clear();
- get_first();
- break;
- }
- prev = str.size();
- str.clear();
- }
- in.get(ch);
- }
- if (str.size()) {
- s.push_back(str);
- strs++;
- }
- in.close();
- }
- void CText::write() {
- ofstream out("output.txt");
- if (!out)
- cout << "Not enought file" << endl;
- for (unsigned int i = 0; i < s.size(); i++) {
- for (unsigned int j = 0; j < s[i].size(); j++)
- out << (s.at(i)).at(j);
- out << endl;
- }
- out.close();
- }
- bool CText::is_sep(char ch) {
- for (int i = 0; i < seps_col; i++)
- if (ch == seps[i])
- return true;
- return false;
- }
- void CText::processing() {
- int chet = 0, nechet = 0;
- for (int i = 0; i < strs; i++)
- for (int j = 0; j < s[i].length(); j++)
- if (s[i][j] >= '0' && s[i][j] <= '9')
- if ((i + 1) % 2 == 0)
- chet++;
- else
- nechet++;
- if (chet < nechet)
- replace();
- }
- void CText::replace() {
- for (int i = 0; i < strs; i++) {
- bool flag = false;
- for (int j = 0; j < s[i].length(); j++)
- if (s[i][j] >= '1' && s[i][j] <= '9')
- if (!is_sep(s[i][j])) {
- s[i][j] = s[i][j] - '1' + 'a';
- flag = true;
- }
- if (!flag) {
- s[i].insert(s[i].begin(), seps[0]);
- s[i].insert(s[i].begin(), seps[0]);
- s[i].insert(s[i].begin(), seps[0]);
- }
- }
- }
- int main(int argc, char* argv[]) {
- system("chcp 1251");
- char rdels[5];
- int n, i;
- CText text;
- text.get_seps();
- text.read();
- text.processing();
- text.write();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement