Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <vector>
- using namespace std;
- ////////////////// ЧАСТЬ А ////////////////////////////
- char* stroka(const char* str)
- {
- //создаем вторую строку для вывода
- char *str2 = new char[301];
- int k = 0;
- int j = 0;
- bool probel = 0;
- int s = strlen(str);
- for (k; k < s; k++)
- {
- if (str[k] != ' ')
- {
- probel = 1;
- }
- if (probel == 1)
- {
- for (j; j < s; j++)
- {
- str2[j] = str[k];
- k++;
- }
- str2[s] = 0;
- return str2;;
- }
- probel = 0;
- }
- str2[s] = 0;
- return str2;
- }
- //////////////////// ЧАСТЬ Б ////////////////////////////
- char* changeStr(const char* str)
- {
- vector <char> latinAlphWords; //для слов из латинских букв
- vector <char> othersWords; //для остальных слов
- //Строка вывода
- char* str2 = new char[301];
- int dlinaStr = 0, i = 0;
- //Узнаем длину строки
- while (str[i] != 0)
- {
- i++;
- }
- dlinaStr = i;
- int now = 0;
- int j = 0;
- int shchetchik = 0;
- for (now = 0; now <= dlinaStr; now++)
- {
- //если символ является латинской буквой,то увеличиваем счетчик
- if ((str[now] >= 'a' && str[now] <= 'z') || (str[now] >= 'A' && str[now] <= 'Z'))
- {
- shchetchik++;
- }
- //если символ является пробелом или 0,то проверяем его
- if (str[now] == ' ' || str[now] == 0)
- {
- //условие ,если слово состоит полностью из латинских букв
- if (shchetchik == now - j)
- {
- for (j; j <= now; j++)
- {
- latinAlphWords.push_back(str[j]);
- }
- j = now + 1;
- shchetchik = 0;
- }
- //другие слова
- else
- {
- for (j; j <= now; j++)
- {
- othersWords.push_back(str[j]);
- }
- j = now + 1;
- shchetchik = 0;
- }
- }
- }
- //заполнение строки вывода
- int b = 0;
- int q = latinAlphWords.size();
- for (b; b < q; b++)
- {
- str2[b] = latinAlphWords[b];
- }
- str2[b - 1] = ' ';
- i = 0;
- for (i; i < othersWords.size(); i++)
- {
- str2[b + i] = othersWords[i];
- }
- str2[b -1 + i] = 0;
- return str2;
- }
- int main()
- {
- setlocale(LC_ALL, "ru");
- char *sA = new char[301];
- char *sB = new char[301];
- cout << "Введите строку для части А : " << endl;
- cin.getline(sA, 301);
- cout << "Введите строку для части Б : " << endl;
- cin.getline(sB, 301);
- //эти указатели созданы для очищения динамической памяти
- char* temp = 0;
- char* temp1 = 0;
- cout << (temp = stroka(sA)) <<endl;
- cout << (temp1= changeStr(sB)) << endl;
- delete[] temp1;
- delete[] temp;
- delete[] sA;
- delete[] sB;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement