>>188  バグ付きですが…

void expand( char *s1, char *s2 )
{
  char *pt;
  char ch;
  int isnotfirst = 0;

  pt = NULL;

  while( '\0' != *s1 ) {
    if( isnotfirst && '-' == *s1 && *s2 < *(s1+1) ) {
      for( ch = *s2+1; ch < *(s1+1); ch++ ) {
        s2 ++;
        *s2 = ch;
      }
    }
    else {
      if( isnotfirst ) {
        s2 ++;
      }
      else {
        isnotfirst = 1;
      }
      *s2 = *s1;
    }
    s1++;
  }
  *(s2+1) = '\0';
}