Code:
#include <stdio.h>
#include <stdlib.h>
void fpvar( FILE *fp, int c )
{
char prefix[] = "ThisIsTheVariableForThe";
char *suffix[] = { "Letter_", "OneSpace" };
fprintf( fp, "%s%s", prefix, suffix[c==' '?1:0] );
if( c != ' ' )
{
fprintf( fp, "%c", c );
}
}
int main( void )
{
int x,y,z;
char letters[] = "Your name";
char *lines[] =
{
"#include <stdio.h>\n",
"int main( void )\n",
"{\n",
" char ",
" ",
" ",
" return 0;\n",
"}\n",
0,
};
FILE *fp = fopen("yourn.c", "w" );
if( !fp )
return 0;
for( x = 0; lines[x]; x++ )
{
fprintf( fp, "%s", lines[x] );
if( x == 3 )
{
fpvar( fp, letters[0] );
fputs( "=0,", fp );
fpvar( fp, letters[1] );
fputs( "=0,\n", fp );
}
if( x == 4 )
{
for( y = 0; y < 5; y+=2 )
{
fpvar( fp, letters[y+2] );
fputs( "=0,", fp );
fpvar( fp, letters[y+3] );
fputs( "=0,\n", fp );
fputs( lines[x], fp );
}
fpvar( fp, letters[y+2] );
fputs( "=0;\n", fp );
}
if( x == 5 )
{
for( y = 0; letters[y]; y++ )
{
for( z = 0; z < letters[y]; z++ )
{
fpvar( fp, letters[y] );
fputc( '=', fp );
fpvar( fp, letters[y] );
fputs( "+1;\n", fp );
fputs( lines[x], fp );
}
fputs( "putchar( ", fp );
fpvar( fp, letters[y] );
fputs( " );\n ", fp );
}
}
}
fclose( fp );
return 0;
}
Because it's the shorter of the two.