Advertisement
HellFinger

Untitled

May 30th, 2019
211
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*Вариант 22
  5.  *
  6.  * Написать функцию, удаляющую лишние пробелы в тексте
  7.  *
  8.  * функция eleminat_prb получает указатель на входной массив и на массив результата
  9.  * пока массив не закончился, она переписывает посимвольно входной массив в массив результата, если функция встречает пробел, то она пропускает все последующие пробелы,
  10.  *  пока снова не начнустя символы
  11.  */
  12.  
  13.  
  14. int get_len(const char* str)
  15. {
  16.  
  17.     int len = 0;
  18.     while(str[len]){
  19.         len++;
  20.     }
  21.     return len;
  22. }
  23.  
  24.  
  25.  
  26. void eleminat_prb(char* buff, char* result){
  27.     int i = 0;
  28.     int j = 0;
  29.     int counter = 1;
  30.     while(buff[i] != '\0'){
  31.  
  32.         if(buff[i] == ' '){
  33.             result = (char*)realloc(result, sizeof(char));
  34.             result[j] = buff[i];
  35.             counter++;
  36.             while(buff[i+1] == ' '){
  37.                 i++;
  38.             }
  39.         }
  40.         result = (char*)realloc(result, sizeof(char));
  41.         result[j] = buff[i];
  42.         counter++;
  43.         i++;
  44.         j++;
  45.     }
  46.  
  47.  
  48.  
  49. }
  50.  
  51.  
  52.  
  53. int main()
  54. {
  55.  
  56.     char buff[256];
  57.     scanf("%s", &buff);
  58.     int len = get_len(buff);
  59.     printf("%d\n", len);
  60.  
  61.  
  62.     //char buff = (char*)malloc(sizeof(char));
  63.  
  64.     char result = (char *)malloc(sizeof(char));
  65.     eleminat_prb(buff, result);
  66.  
  67.     printf("%s\n", result);
  68.  
  69.     free(result);
  70.     return 0;
  71. }
Advertisement
RAW Paste Data Copied
Advertisement