Advertisement
Deerenaros

A little useless program.

Sep 24th, 2014
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stddef.h>
  3.  
  4. #define MAX_LEN 512
  5.  
  6. char *seps = "+=*";
  7.  
  8. int is_sep ( char ch ) {
  9.     if ( ch == '\0' ) return 1;
  10.  
  11.     int i; for ( i = 0; seps[ i ]; i++ ) {
  12.         if ( seps[ i ] == ch ) {
  13.             return 1;
  14.         }
  15.     }
  16.  
  17.     return 0;
  18. }
  19.  
  20. char *write_with_rotate ( char *src, char *dst ) {
  21.     char *_src = src, *_dst = dst, *t;
  22.  
  23.     // bull shit code here!
  24.     while ( !is_sep ( *src ) ) src++;
  25.     while ( *src != '\0' ) {
  26.         char *back = src;
  27.         while ( is_sep ( *src ) ) src++;
  28.         while ( !is_sep ( *src ) ) {
  29.             *dst = *src;
  30.             src++; dst++;
  31.         } t = src; src = back; back = t; // this is swap 'src' with 'back'
  32.         while ( is_sep ( *src ) ) {
  33.             *dst = *src;
  34.             src++; dst++;
  35.         } src = back;
  36.     } src = _src;
  37.  
  38.     while ( !is_sep ( *src ) ) {
  39.         *dst = *src;
  40.         src++; dst++;
  41.     } *dst = '\0';
  42.  
  43.     return _dst;
  44. }
  45.  
  46. int main ( int argc, char **argv ) {
  47.     char input[ MAX_LEN ], output[ MAX_LEN ];
  48.  
  49.     fgets ( input, MAX_LEN, stdin ); input[ strlen ( input ) - 1 ] = '\0';
  50.     printf ( "%s", write_with_rotate ( input, output ) );
  51.  
  52.     system ( "PAUSE" );
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement