Knowee
Questions
Features
Study Tools

Write your own printf function:Create a manPrint a simple characterPrint a stringHandle %dHandle %x

Question

Write your own printf function:

  1. Create a man
  2. Print a simple character
  3. Print a string
  4. Handle %d
  5. Handle %x
🧐 Not the exact question you are looking for?Go ask a question

Solution

Here's a simple implementation of a myprintf function in C that handles basic character and string printing, along with formatting for integers in decimal (%d) and hexadecimal (%x):

1. Include Necessary Headers

First, include the standard input/output library.

#include <stdio.h>
#include <stdarg.h>

2. Function Prototype

Define the prototype for the myprintf function.

void myprintf(const char *format, ...);

3. Implement the myprintf Function

Implement the myprintf function to process the format string with variable arguments.

void myprintf(const char *format, ...) {
    va_list args;
    va_start(args, format);
    
    const char *ptr;
    for (ptr = format; *ptr != '\0'; ptr++) {
        if (*ptr == '%') {
            ptr++;
            switch (*ptr) {
                case 'c': {
                    // Print character
                    char c = (char)va_arg(args, int); // Promote char to int
                    putchar(c);
                    break;
                }
                case 's': {
                    // Print string
                    char *s = va_arg(args, char *);
                    fputs(s, stdout);
                    break;
                }
                case 'd': {
                    // Handle decimal integers
                    int d = va_arg(args, int);
                    printf("%d", d);
                    break;
                }
                case 'x': {
                    // Handle hexadecimal integers
                    int x = va_arg(args, int);
                    printf("%x", x);
                    break;
                }
                default:
                    putchar('%');
                    putchar(*ptr);
                    break;
            }
        } else {
            putchar(*ptr);
        }
    }
    
    va_end(args);
}

4. Example Usage

Here's how you can use the myprintf function in your main program.

int main() {
    myprintf("Character: %c\n", 'A');
    myprintf("String: %s\n", "Hello, World!");
    myprintf("Decimal: %d\n", 123);
    myprintf("Hexadecimal: %x\n", 255);
    
    return 0;
}

Final Answer

This program provides a custom implementation of the printf function that handles characters, strings, decimal integers, and hexadecimal integers. You can compile and run this program to test various inputs.

This problem has been solved

Similar Questions

Write your own printf function:Create a manPrint a simple characterPrint a stringHandle %dHandle %x

Write a program in C to print a string in reverse using a character pointer.Also print the uppercase of the first letter of the reversed word.

1.What is the output of the following code?char str[] = "hello";printf("%c\n", str[1]);

What system call would you use to write to a file descriptor? (select all correct answers)writeprintffprintf

Write a program that takes a string of lowercase characters as input and prints it in uppercase, reversed.

1/1

Upgrade your grade with Knowee

Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.