C programming: Example of C custom printf() function
Implementing a custom printf() function in C.
Here is an example implementation of a custom printf() function that supports a subset of format specifiers (Character, String, Integer and Double).
Note: This implementation does not support all of the format specifiers that printf() does, and it does not implement all of the functionality of printf().
Code:
#include <stdio.h>
#include <stdarg.h>
void custom_printf(const char* format, ...) {
va_list arg_list;
va_start(arg_list, format);
while (*format != '\0') {
if (*format == '%') {
format++;
if (*format == 'd') {
int val = va_arg(arg_list, int);
printf("%d", val);
}
else if (*format == 's') {
char* val = va_arg(arg_list, char*);
printf("%s", val);
}
else if (*format == 'c') {
char val = va_arg(arg_list, int);
printf("%c", val);
}
else if (*format == 'f') {
double val = va_arg(arg_list, double);
printf("%f", val);
}
format++;
}
else {
printf("%c", *format);
format++;
}
}
va_end(arg_list);
}
int main() {
int x = 100;
double d = 23.56;
char c = 'C';
char* str = "Custome printf() function!";
custom_printf("Example of C custom printf() function:\n");
custom_printf("\nCharacter: %c\n", c);
custom_printf("String: %s\n", str);
custom_printf("Integer: %d\n", x);
custom_printf("Double: %f\n", d);
return 0;
}
Output:
Example of C custom printf() function: Character: C String: Custome printf() function! Integer: 100 Double: 23.560000
This implementation uses va_list, va_start(), va_arg(), and va_end() from the
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/c-programming-exercises/c-snippets/implementing-custom-printf-function-in-c.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics