SteelK

Untitled

Jun 1st, 2017
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdio>
  4.  
  5.  
  6.  
  7. using namespace std;
  8.  
  9. // Возвращает индекс 1-го найденного пробела
  10. int GetSpacePos(char *s, int length) {
  11.     int space;
  12.     for (int i = 0; i < length; i++)
  13.         if (s[i] == ' ')
  14.             return i;
  15. }
  16.  
  17.  
  18.  
  19. // Возвращает последнее слово в сроке
  20. char* LastWord(char *s, int length) {
  21.     int space;
  22.  
  23.     // Ищем индекс последнего пробела в строке
  24.     for (int i = 0; i < length; i++)
  25.         if (s[i] == ' ')
  26.             space = i;
  27.  
  28.     //Возвращем кусок строки, начиная со следующего после пробела символа
  29.     return (s + (++space));
  30.  
  31. }
  32.  
  33.  
  34.  
  35. // Возвращает первое слово из строки
  36. char* GetWord(char *s, int length) {
  37.  
  38.     // Создаём новую строковую переменную
  39.     char *new_s = new char[length];
  40.  
  41.     // Копируем старую строку в новую
  42.     strcpy(new_s, s);
  43.     /*
  44.     Ищем индекс первого пробела в строке и присваиваем ему 0,
  45.     тем самым обрезая строку по этот пробел.
  46.     */
  47.     new_s[GetSpacePos(new_s, length)] = 0;
  48.  
  49.     // Возвращаем обрезанную строку
  50.     return new_s;
  51.  
  52. }
  53.  
  54.  
  55.  
  56. // TODO!!!
  57. bool RepeatLetters(char *s, int length) {
  58.     int *map = 0;
  59.     int array[255];
  60.     map = &array[127];
  61.     for (int i = 0; i < length; i++) {
  62.         map[(int)s[i]]++;
  63.         if (map[(int)s[i]] > 1)
  64.             return true;
  65.     }
  66.  
  67.     return false;
  68. }
  69.  
  70.  
  71.  
  72. int main() {
  73.     setlocale(0, "");
  74.     const int length = 79;
  75.     char s[length];
  76.     cout << "Введите строку:\n";
  77.     gets(s);
  78.     char *last_word = LastWord(s, length);
  79.     char *word = GetWord(s, length);
  80.     int space = GetSpacePos(s, length) + 1;
  81.     int i = 0;
  82.     while (space < length) {
  83.         if (strcmp(word, last_word));
  84.             cout << word << endl;
  85.         word = GetWord(s + space, length);
  86.         space = GetSpacePos(s + space, length) + space + 1;
  87.     }
  88.     return 0;
  89. }
Add Comment
Please, Sign In to add comment