puma7953

Untitled

Dec 12th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. void Substr(char* str, int str_len) {
  7.     int len_str_str = 0;
  8.     char *i, *j;
  9.     j = NULL;
  10.     char* new_str = (char*)malloc(sizeof(char));
  11.  
  12.     for (i = str; i < str + str_len; i++) {
  13.         if (isdigit(*i)) {
  14.             *(new_str + len_str_str) = *i;
  15.             new_str = (char*)realloc(new_str, (1 + (len_str_str++)) * sizeof(char));
  16.         }
  17.  
  18.         if ((i != str) && (!isdigit(*i)) && (isdigit(*(i - 1)))) {
  19.             *(new_str + len_str_str) = ' ';
  20.             new_str = (char*)realloc(new_str, (1 + (len_str_str++)) * sizeof(char));
  21.         }
  22.     }
  23.     *(new_str + len_str_str) = '\0';
  24.  
  25.     int len = 0, min_len = len_str_str;
  26.     for (i = strtok(new_str, " "); i != NULL; i = strtok(NULL, " ")) {
  27.         if (strlen(i) < min_len) {
  28.             min_len = strlen(i);
  29.             j = i;
  30.         }
  31.     }
  32.     for (i = j; i < j + min_len; i++) {
  33.         printf("%s", i);
  34.     }
  35. }
  36.  
  37. int main() {
  38.  
  39.     int str_len = 0;
  40.     char ch;
  41.     char* str = (char*)malloc(sizeof(char));
  42.  
  43.     //Введение строки
  44.     printf("Enter string:\n");
  45.     while ((ch = getchar()) != '\n') {
  46.         *(str + str_len) = ch;
  47.         str = (char*)realloc(str, (1 + (str_len++)) * sizeof(char));
  48.     }
  49.     *(str + str_len) = '\0';
  50.  
  51.     Substr(str, str_len);
  52.  
  53.     return 0;
  54. }
Add Comment
Please, Sign In to add comment