Advertisement
gasaichan

Untitled

Jun 8th, 2017
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #include <clocale>
  4. #include <iostream>>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.     setlocale(LC_ALL, "Russian");
  10.  
  11.     /*
  12.     В string хранится введенная строка.
  13.     В buff хранится слово
  14.     В buff2 хранится номер слова, переведенный из int в char
  15.     В moddedString хранится измененная строка
  16.     */
  17.  
  18.     char string[64];
  19.     char buff[16] = "00000000";
  20.  
  21.     // Вводим строку
  22.     printf("Введите строку: ");
  23.     gets_s(string, 64);
  24.  
  25.     // wordsCounter - текущее слово, buffCounter - указатель на элемент строки buff, начинаем с нуля
  26.     int wordsCounter = 1;
  27.     int buffCounter = 0;
  28.  
  29.     // Ставим единичку для первого слова
  30.     if (string[0] != ' ') {
  31.         printf("(%d)", wordsCounter);
  32.         wordsCounter++;
  33.     }
  34.  
  35.     // Наша строка moddedString будет иметь вид "(1)"
  36.     // Проходимся по всей строке string по символу
  37.     for (int i = 0; i < strlen(string); i++) {
  38.         // Если нашелся конец строки
  39.         if (string[i + 1] == '\0') {
  40.             // Записываем в буфер еще один символ из нашей строки
  41.             buff[buffCounter] = string[i];
  42.             // Говорим, что на этом строка buff закончилась
  43.             buff[buffCounter + 1] = '\0';
  44.             // Присоединяем к нашей новой строке строку buff
  45.             cout << buff << " ";
  46.         }
  47.         // Если нашелся не пробел
  48.         if (string[i] != ' ') {
  49.             // В строку buff записываем символ из строки string
  50.             buff[buffCounter] = string[i];
  51.             buffCounter++;
  52.         }
  53.         else if (string[i + 1] == ' ') {
  54.             continue;
  55.         }
  56.         else {
  57.            
  58.             // Сразу говорим, что строка buff закончилась
  59.             buff[buffCounter] = '\0';
  60.             // Присоединяем строку buff к строке moddedString
  61.             cout << buff << " ";
  62.  
  63.             // Следующие действия присоединяют к нашей строке moddedString номер слова в формате " (wordCounter)"
  64.             if (buff[0] != '\0') {
  65.                 printf("(%d)", wordsCounter);
  66.                 wordsCounter++;
  67.                 buffCounter = 0;
  68.             }
  69.             // Увеличиваем wordsCounter на единицу для перехода к следующему слову и обнуляем указатель на buff, чтобы начинать записывать с начала строки
  70.         }
  71.     }
  72.  
  73.     cout << endl;
  74.     system("PAUSE");
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement