#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#define STR "ab c efg "
void No_recurse(char *STR)
{
char *p=NULL, *q=NULL, *tmp=NULL;
for (p=STR,q=STR; *p!='\0'; p++)
{
if (*p==' '||*p=='\t')
continue;
if (p!=q)
{
*q = *p;
*p = ' ';
}
q++;
}
*q='\0';
//printf("%s\n", STR);
}
void Recurse(char *p, char *q)
{
if (*p == '\0')
{
*q = '\0';
return;
}
if (*p==' '||*p=='\t')
{
Recurse(p+1, q);
return;
}
if (p!=q)
{
*q = *p;
*p = ' ';
}
Recurse(p+1, q+1);
return;
}
int main()
{
char STR[20]= "ab c efg ";
Recurse(STR, STR);
//No_recurse(STR);
printf("%s\n", STR);
return 0;
}