Q:

Skip characters while reading integers using scanf() in C

belongs to collection: C scanf() Programs

0

Skip characters while reading integers using scanf() in C

Let suppose, we want to read time in HH:MM:SS format and store in the variables hoursminutes and seconds, in that case we need to skip columns (:) from the input values.

There are two ways to skip characters:

  1. Skip any character using %*c in scanf
  2. And, by specifying the characters to be skipped

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

1) Skip any character using %*c in scanf

%*c skips a character from the input. For example, We used %d%*c%d and the Input is 10:20 – : will be skipped, it will also skip any character.

Example:

    Input 
    Enter time in HH:MM:SS format 12:12:10

    Output:
    Time is: hours 12, minutes 12 and seconds 10

Program:

#include <stdio.h>

int main () 
{
	int hh, mm, ss;
	
	//input time
	printf("Enter time in HH:MM:SS format: ");
	scanf("%d%*c%d%*c%d", &hh, &mm, &ss) ;
	//print 
	printf("Time is: hours %d, minutes %d and seconds %d\n" ,hh, mm, ss) ;
	
	return 0;
}

Output

Enter time in HH:MM:SS format: 12:12:10
Time is: hours 12, minutes 12 and seconds 10

2) By specifying the characters to be skipped

We can specify the character that are going to be used in the input, for example input is 12:12:10 then the character : can be specified within the scanf() like, %d:%d:%d.

Example:

    Input 
    Enter time in HH:MM:SS format 12:12:10

    Output:
    Time is: hours 12, minutes 12 and seconds 10

Program:

#include <stdio.h>

int main () 
{
	int hh, mm, ss;
	
	//input time
	printf("Enter time in HH:MM:SS format: ");
	scanf("%d:%d:%d", &hh, &mm, &ss) ;
	//print 
	printf("Time is: hours %d, minutes %d and seconds %d\n" ,hh, mm, ss) ;
	
	return 0;
}

Output

Enter time in HH:MM:SS format: 12:12:10
Time is: hours 12, minutes 12 and seconds 10

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

<< Read a memory address using scanf() and print its ...