Author: Not specified Language: c
Description: Not specified Timestamp: 2013-05-21 19:25:07 +0000
View raw paste Reply
  1. Item *DelLetters(Item *p)
  2. {
  3.         Item *tmp;
  4.         while((p->next) && (p->next->c != ' ') && (p->next->c != '\t'))
  5.                 {
  6.                     tmp = p;
  7.                     p = p->next;
  8.                     free(tmp);
  9.                 }
  10.  
  11.         return p;
  12. }
  13.  
  14. Item *newString(Item *p)
  15. {
  16. Item head = {'*', p};
  17. Item *cur = &head, *prev = &head; // prev - ??? ?????????? ????????? ????? ??????
  18.  
  19.     /* ???????????? ?????? ? ???????? ?????????; ??????? cur ?????????
  20.     ** ?? ??????? ??????, ?????????????? ????, ??????? ????? ??????????????? */
  21.     while((cur) && (cur->next = delSpace(cur->next)))
  22.     {
  23.         /* ????? ???? ????????????? ? cur, ??? ??? ? ?????????? ????????
  24.         * ????? cur ????????? ?? ??????? ??????, ????????? ?? ????????? ????????
  25.         ** ?????, ? ??? ????? ? ?? ???? - ????????? ?????? ????? ???? ?????????
  26.         ** ?????? ?????? */
  27.         if(cur->next->c != ' ')
  28.         {
  29.             cur = DelLetters(cur->next);
  30.             prev = cur;                    // ????????? ????????? ?????? ?????
  31.             cur = cur->next;               // ?????? cur ????????? ?? ??????? ????? ?????
  32.             if(cur)                        // ???? ?????-?? ??????????? ??????, cur ?????????
  33.                 cur->c = ' ';              // ?? ?????????? ??????? ??????
  34.         }
  35.  
  36.     }
  37.     if(prev->next)                 // ????????, ? ????? ?????? - ?????? ??????? ?????? ??????
  38.     {
  39.         free(prev->next);
  40.         prev->next = NULL;
  41.     }
  42. return head.next;
  43. }
  44.  
View raw paste Reply