

/***********************************************************************/
/* Author: Suzanne Miller Dorney                                       */
/* File: lab7.c                                                        */
/* Class:  CPSC-202 lab section 1                                      */
/* Project:  Lab 7                                                     */
/* Purpose:  This program will test a function that prints out a string*/
/*           within a specified width.                                 */
/***********************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* Function prototype */
int PrintString( FILE *fp, char string[], int width );


int main( )
{
  /* variables */
  char string[100];
  int  width;
  
  /* get input */
  printf( "Please enter a string: " );
  scanf( "%s", string );
  printf( "Please enter a field width: " );
  scanf( "%d", &width );

  printf( "12345678901234567890\n" );
  PrintString( stdout, string, width );
  printf( "***\n" );

  return 0;
}

/* print function */
int PrintString( FILE *fp, char string[], int width )
{
  int padding;
  int i;

  padding = abs( width ) - strlen( string );

  if ( padding <  0 )
  {
    for ( i=0; i<abs(width); i++ )
      fputc( string[i], fp );
    return width;
  }

  if ( width > 0 )
  {
    for ( i=0; i<padding; i++ )
      fputc( ' ', fp);
    for ( i=0; i<( width - padding ); i++ )
      fputc( string[i], fp );
    return strlen( string );
  }
  else
  {
    for ( i=0; i<( abs(width) - padding ); i++ )
      fputc( string[i], fp );
    for ( i=0; i<padding; i++ )
      fputc( ' ', fp);
    return strlen( string );
  }

}
