Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int MAX = 1000;
- int lengthString(char*);
- char* insertnString(char*, char*, int);
- int main()
- {
- setlocale(LC_CTYPE, "rus");
- char* stroka1 = new char[MAX];
- char* stroka2 = new char[MAX];
- int pozic;
- cout << "\nВведите первую строку для конкатенации: ";
- cin.getline(stroka1, MAX);
- cout << "Введите вторую строку для конкатенации: ";
- cin.getline(stroka2, MAX);
- while (true)
- {
- cout << "Введите позицию для вставляемой строки" << "(1 - " << lengthString(stroka1) + 1 << "): ";
- cin >> pozic;
- if (cin.good() && pozic > 0 && pozic <= (lengthString(stroka1) + 1))
- {
- cin.ignore(MAX, '\n');
- break;
- }
- cin.clear();
- cout << "\nНеправильный ввод данных\n";
- cin.ignore(MAX, '\n');
- }
- cout << "Результат объединения: ";
- cout << insertnString(stroka1, stroka2, pozic) << endl;
- }
- int lengthString(char* stroka)
- {
- int i;
- for (i = 0; stroka[i] != '\0'; i++);
- return i;
- }
- char* insertnString(char* s1, char* s2, int n)
- {
- int l1 = lengthString(s1);
- int l2 = lengthString(s2);
- char* rezult_str = new char[l1 + l2 + 1]; // строка - сборка +1 для символа конца строки
- n--; //
- for (int x = 0; x < n; x++)
- rezult_str[x] = s1[x]; // копируем часть первой строки до нужного индекса
- for (int x = 0; x < l2; x++) //добавляем вставляемую строку
- rezult_str[x + n] = s2[x];
- for (int x = n; s1[x] != 0; x++) //добавляем оставшуюся часть первой строки
- rezult_str[x + l2] = s1[x];
- rezult_str[l1 + l2] = '\0';
- return rezult_str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement