Advertisement
daniil_mironoff

Untitled

Nov 29th, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // С помощью этой функции мы узнаем размер размер строки. Было бы там с хуями у парней, соглы?        (у него шиза походу, звони 911)
  6. unsigned int sizeStr(char*);                                     //                                   (в России 911 же?)
  7.  
  8. // Ну а это главная функция собственно
  9. void remove(char*, unsigned int, unsigned int);
  10.  
  11. int main() {
  12.     // Создаем переменную (указатель на char (в каком то смысле массив)) для хранения строки
  13.     char* str;
  14.  
  15.     // Записываем в нее нашу строчку (уииии)
  16.     cout << "Enter string: "; cin >> str;
  17.  
  18.     unsigned int startIndex;
  19.     unsigned int count;
  20.  
  21.     // и значенияяяяяяя
  22.     cout << "Enter start index: ";      cin >> startIndex;
  23.     cout << "Enter count del symbol: "; cin >> count;
  24.  
  25.     // Используем нашу функцию (тудудун)
  26.     remove(str, startIndex, count);
  27.    
  28.     // и Выводим эту строчку нашу :3
  29.     cout << str << endl;
  30.  
  31.    
  32.  
  33.     return 0;
  34. }
  35.  
  36. unsigned int sizeStr(char* str) {
  37.     // Эта штучка считает сколько символов до
  38.     unsigned int count = 0;
  39.  
  40.     // Эта штучка будет увеличивать счетчик (count), пока не встретит конец строки
  41.     // который обозначает символов, равным 0
  42.     while (str[count] != 0) { count++; }
  43.  
  44.     return count;
  45. }
  46.  
  47. void remove(char* str, unsigned int startIndex, unsigned int count) {
  48.     // Размер строки
  49.     unsigned int size_str = sizeStr(str);
  50.  
  51.     if (startIndex >= size_str) { /* мы ничего не делаем тогда, лол */ } else
  52.  
  53.     // Проверка на случай, если после удаленного куска нету символов
  54.     if (startIndex + count >= size_str) {
  55.         str[startIndex] = 0; // мы проста ставим индекс окончания строки, и все)
  56.     } else
  57.  
  58.     // Самый сложный случай - когда после удаления куска символов - после
  59.     if (startIndex + count <= size_str) {
  60.         for (unsigned int i = startIndex; size_str - count > i; i++) {
  61.             str[i] = str[i + count];
  62.         }
  63.  
  64.         str[size_str - count] = 0;
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement