#include <stdio.h>
#include <stdlib.h>
#include "people.h"

char *substr(char *string, int offset, int length)
{
  int i = 0;
  char *subString;
  if ((subString = malloc(length + 1)) != NULL)
    for (i = 0; i < length; i++)
      subString[i] = string[i+offset];
  return(subString);
}

void replaceTabWithSpace(char *string)
{
  while(*string)
  {
    if(*string == TAB)
      *string = SPACE;
    string++;
  }
}

char *skipSpace(char *string)
{
  while (*string == SPACE)
    string++;
  return(string);
}

char *removeWhite(char *string)
{
  char *newString, *temp;
  if ((temp = malloc(strlen(string) + 1)) != NULL)
  {
    newString = temp;
    replaceTabWithSpace(string);
    while(*string)
    {
      string = skipSpace(string);
      *temp++ = *string;
      string++;
    }
  }
  return(newString);
}

char *removeFrontWhite(char *string)
{
  char *newString, *temp;
  if ((temp = malloc(strlen(string) + 1)) != NULL)
  {
    newString = temp;
    replaceTabWithSpace(string);
    if (*string == SPACE)
      string = skipSpace(string);
    while(*string)
    {
      *temp++ = *string;
      string++;
    }
  }
  return(newString);
}

void reverse(char *string)
{
  char ch, *temp;
  temp = string + strlen(string) - 1;
  while (string < temp)
  {
    ch = *string;
    *string++ = *temp;
    *temp-- = ch;
  }  
}

char *removeRearWhite(char *string)
{
  char *newString;
  reverse(string);
  newString = removeFrontWhite(string);
  reverse(newString);
  return(newString);
}


char *trimString(char *string)
{
  char *newString, *temp;
  string = removeFrontWhite(string);
  string = removeRearWhite(string);
  if ((temp = malloc(strlen(string) + 1)) != NULL)
  {
    newString = temp;
    while(*string)
    {
      if (*string == SPACE)
        *temp++ = *string;      
      string = skipSpace(string);
      *temp++ = *string;
      string++;
    }
  }
  return(newString);
}

