Anonymous
public text v1 · immutablevoid print(char *a, char *b)
{
char *a1, *b1;
int apos = strlen(a);
int olen = apos;
if ( apos == 0 )
{
printf("%s\n", b);
return;
}
while ( apos )
{
/* construct new a */
a1 = malloc(olen+1);
strcpy(a1, a);
/* remove extra char */
memmove(a1+apos-1, a1+apos, olen-apos+1);
/* construct new b */
b1 = malloc(strlen(b)+2);
b1[0] = a[--apos];
strcpy(b1+1, b);
print(a1, b1);
}
}