#include <unistd.h>
#include <stdarg.h>
int printchar(char c){
write(1, &c, 1);
return 1;
}
int str_len(char * str){
int counter = 0;
while(str[counter] != '\0'){
counter++;
}
return counter;
}
int printstring(char *str){
int len = str_len(str);
write(1, str, len);
return len;
}
int handle_flag(va_list args, char flag)
{
if (flag == 'c')
return (printchar((char)va_arg(args, int)));
if (flag == 's')
return (printstring(va_arg(args, char *)));
if (flag == '%')
return (printchar('%'));
return (0);
}
int myprintf(const char * str, ...){
va_list args;
int counter;
va_start(args, str);
counter = 0;
while(*str != '\0'){
if (*str == '%'){
str++;
counter += handle_flag(args, *str);
}
else {
counter += printchar(*str);
}
str++;
}
va_end(args);
return counter;
}
int main() {
char * str = "%cello %s!%%";
myprintf(str, 'H', "world");
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: