#include <stdio.h>
#include <string.h>
#include <ctype.h>

char *Capitalize(char *str)
{
  char *pTmp = str;

  while(*pTmp)
  {
    while(isspace(*pTmp) || ispunct(*pTmp))
      pTmp++;
    
    *pTmp = toupper(*pTmp);
    pTmp++;
    
    while(isalnum(*pTmp))
    {
      *pTmp = tolower(*pTmp);
      pTmp++;
    }
  }
  
  return str;
}

void main()
{
  char str[256];
  
  do
  {
    printf("\n\nDigite um nome: ");
    gets(str);
    printf(Capitalize(str));
  } while(strlen(str));

}