Skip to content

Instantly share code, notes, and snippets.

@jangsoopark
Created June 3, 2014 11:18
Show Gist options
  • Save jangsoopark/b82ced88d19fb0069dd7 to your computer and use it in GitHub Desktop.
Save jangsoopark/b82ced88d19fb0069dd7 to your computer and use it in GitHub Desktop.
int my_fprintf(FILE* fp, char* str, ...)
{
va_list arg;
char *y;
int i, len = 0;
char *atr;
int num;
char arr[100];
char arrprint[100];
va_start(arg, str);
y = str;
while(*y != 0)
{
if(*y == '%')
{
switch (*(++y))
{
case 's':
atr = va_arg(arg, char*);
if(atr != NULL)
{
for(i=0; atr[i] != '\0'; i++)
{
arrprint[len++]=atr[i];
}
break;
}
case 'd':
num = va_arg(arg, int);
for(i=0; num>0; i++)
{
arr[i] = (num%10) + '0';
num/=10;
}
for(; i>0;)
{
arrprint[len++] = arr[--i];
}
break;
case 'c':
arrprint[len++] = va_arg(arg, char);
break;
}
}
else
{
arrprint[len++] = *y;
}
y++;
}
va_end(arg);
arrprint[len] = '\0';
fputs(arrprint, fp);
return len;
}
int my_printf(char* str, ...)
{
va_list arg;
char *y;
int i, len = 0;
char *atr;
int num;
char arr[100];
char arrprint[100];
va_start(arg, str);
y = str;
while(*y != 0)
{
if(*y == '%')
{
switch (*(++y))
{
case 's':
atr = va_arg(arg, char*);
if(atr != NULL)
{
for(i=0; atr[i] != '\0'; i++)
{
arrprint[len++]=atr[i];
}
break;
}
case 'd':
num = va_arg(arg, int);
for(i=0; num>0; i++)
{
arr[i] = (num%10) + '0';
num/=10;
}
for(; i>0;)
{
arrprint[len++] = arr[--i];
}
break;
case 'c':
arrprint[len++] = va_arg(arg, char);
break;
}
}
else
{
arrprint[len++] = *y;
}
y++;
}
va_end(arg);
arrprint[len] = '\0';
for(i=0;i<len;i++)
putchar(arrprint[i]);
return len;
}
int my_sprintf(char* Dststr,char* str, ...)
{
va_list arg;
char *y;
int i, len = 0;
char *atr;
int num;
char arr[100];
char arrprint[100];
va_start(arg, str);
y = str;
while(*y != 0)
{
if(*y == '%')
{
switch (*(++y))
{
case 's':
atr = va_arg(arg, char*);
if(atr != NULL)
{
for(i=0; atr[i] != '\0'; i++)
{
arrprint[len++]=atr[i];
}
break;
}
case 'd':
num = va_arg(arg, int);
for(i=0; num>0; i++)
{
arr[i] = (num%10) + '0';
num/=10;
}
for(; i>0;)
{
arrprint[len++] = arr[--i];
}
break;
case 'c':
arrprint[len++] = va_arg(arg, char);
break;
}
}
else
{
arrprint[len++] = *y;
}
y++;
}
va_end(arg);
arrprint[len] = '\0';
*Dststr = puts(arrprint);
return len;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment