Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int lengthString(char*);
- char* insertnString(char*, char*, int, int);
- char* Strcpy1(char*, char*);
- int main()
- {
- setlocale(LC_CTYPE, "rus");
- char* stroka1 = new char[15];
- char* stroka2 = new char[5];
- int pozic;
- int n;
- cout << "Введите n: " << endl;
- cin >> n;
- int* mas = new int[n];
- cout << "Введите массив: " << endl;
- for (int i = 0; i < n; i++)
- {
- cin >> *(mas + i);
- //cin >> mas[i];
- }
- cout << "Введите первую строку для конкатенации: ";
- cin >> stroka1;
- cout << "Введите вторую строку для конкатенации: ";
- cin >> stroka2;
- int countV = 0;
- for (int i = 0; i < n; i++)
- {
- insertnString(stroka1, stroka2, *(mas+i), countV);//DANGER!!!!!!!!!!!
- countV++;
- }
- cout << "Результат объединения: ";
- printf("%s", stroka1);
- }
- int lengthString(char* stroka)
- {
- int i;
- //for (i = 0; stroka[i] != '\0'; i++);
- for (i = 0; *(stroka+i) != '\0'; i++); ////////////[]
- return i;
- }
- char* insertnString(char* s1, char* s2, int n, int count)
- {
- int l1 = lengthString(s1);
- int l2 = lengthString(s2);
- char* rezult_str = new char[l1 + l2 + 1]; // строка - сборка +1 для символа конца строки
- n--;
- int poz = n + count * l2;
- for (int x = 0; x < poz; x++)
- //rezult_str[x] = s1[x]; // копируем часть первой строки до нужного индекса
- *(rezult_str+x) = *(s1+x);
- for (int x = 0; x < l2; x++) //добавляем вставляемую строку
- //rezult_str[x + poz] = s2[x];
- *(rezult_str+x + poz) = *(s2+x);
- for (int x = poz; *(s1+x) != 0; x++) //добавляем оставшуюся часть первой строки///////////
- *(rezult_str+x + l2) = *(s1+x);/////////////
- *(rezult_str+l1 + l2) = '\0';///////////////
- Strcpy1(s1, rezult_str);
- return s1;
- }
- char* Strcpy1(char* dst, char* src)
- {
- char* pt = dst;
- while (*src)
- *(dst++) = *(src++);
- *dst = 0;
- return pt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement