Quick links: HR Interview Que. Code Snippets C Programs C++ Programs Java Programs Scala Solved Examples PHP Examples

Home » C programming language

Difference between printf and sprintf in c programming language.

Here we are going to learn about printf and sprintf statements in c programming language, when and how they are used? What are their parameters and what they return?

printf

printf is used to print text (string/ character stream) or/and values on standard output device.

Here is the syntax

int printf(const char *format, ...);

Here,

  • format provides the format of the text string which is going to print on the output device with the help of format specifiers like %s, %d, %f etc.
  • ... provides the list of arguments to be print.
  • Return type int returns total number of printed characters on the output screen.

Sponsored Links

A simple program to print "Hello"

#include <stdio.h>

int main()
{
    printf("Hello");

    return 0;
}

Output

Hello

Program to print Name and Age

#include <stdio.h>

int main()
{
    printf("My name is %s, I am %d years old\n","Mike",23);

    return 0;
}

Output

My name is Mike, I am 23 years old

Program to get and print return value of printf

#include <stdio.h>

int main()
{
    int n;
    
    n=printf("Hello world!");
    
    printf("\nTotal number of printed characters are: %d\n",n);

    return 0;
}

Output

Hello world!
Total number of printed characters are: 12

sprintf

sprintf is used to send (copy) formatted text (string/ character stream) to a string.

Here is the syntax

int sprintf(char *str, const char *format,...);

Here,

  • char *str - Is character array in which formatted text will be sent (copied).
  • format provides the formatted text with the help of format specifiers.
  • ... provides the list of arguments to be print.
  • Return type int returns total number of copied (sent) characters into the char *str.

A simple program to copy Name, age with formatted text in a character array

#include <stdio.h>

int main()
{
    char str[100];
    
    sprintf((char*)str,"My name is %s, I am %d years old.","Mike",23);
    
    printf("Text is: %s\n",str);

    return 0;
}

Output

Text is: My name is Mike, I am 23 years old.

A program to get and print return value of sprintf

#include <stdio.h>

int main()
{
    char str[100];
    int n;
    
    n=sprintf((char*)str,"My name is %s, I am %d years old.","Mike",23);
    
    printf("Text is: %s\n",str);
    printf("Total number of copied characters are: %d\n",n);

    return 0;
}

Output

Text is: My name is Mike, I am 23 years old.
Total number of copied characters are: 35

Reference: https://en.wikipedia.org/wiki/Printf_format_string


COMMENTS

Keywords (like Linux, Java, Oracle etc) used in this website are the trademarks of their respective owners/company. This website is not affiliated to any company. The tutorials are designed by includehelp Team with the help of well known books and other online resources. These Tutorials are free for all, for learning purposes only. Enjoy learning:)
Copyright © 2015 - 2016. All Rights Reserved.