Guest User

detab.c

a guest
Mar 21st, 2014
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1.  
  2. /* head */
  3. #include            <stdio.h>
  4. #define        LINEMAX        1000
  5. #define        TABSTOP        8
  6.  
  7. /* external variables */
  8. char str[LINEMAX];
  9. int charcount = 0;
  10.  
  11.  
  12. /* function prototypes */
  13. void getstr(void);
  14. void putstr(void);
  15.  
  16.  
  17. /* body */
  18. main(){
  19.  
  20.     int n = 0;
  21.     int stop;
  22.  
  23.     getstr();
  24.     putstr();
  25.  
  26. }
  27.  
  28.  
  29. /* function definitions */
  30. void getstr(void){
  31.  
  32.     char c;
  33.     int n;
  34.  
  35.     for( n = 0; ( c = getchar() ) != EOF && c != '\n'; ++n ){
  36.         str[n] = c;
  37.     }
  38.  
  39.     if( c = '\n' ){
  40.         str[n] = c;
  41.         ++n;
  42.     }
  43.  
  44.     str[n] = '\0';
  45.  
  46. }
  47.  
  48. void putstr(void){
  49.  
  50.     int n;
  51.     char c;
  52.  
  53.     for( n = 0; ( c = str[n] ) != '\0'; ++n ){
  54.         int space = ( TABSTOP - ( charcount % TABSTOP ) );
  55.         int loop;
  56.         if( c == '\t' ){
  57.             for( loop = 0; loop < space; ++loop){
  58.                 putchar(' ');
  59.             }
  60.  
  61.             charcount = charcount + space;
  62. /*            putchar('\t');
  63.  
  64.             printf("%d,%d", charcount, space );
  65. */        }
  66.         else{
  67.             putchar(str[n]);
  68.             ++charcount;
  69.         }
  70.  
  71.     }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment