Home »
C programming language
Skip characters while reading integers using scanf() in C
Here, we are going to learn how to skip any character between integers while input using scanf() function in C programming language?
Submitted by IncludeHelp, on September 10, 2018
Let suppose, we want to read time in HH:MM:SS format and store in the variables hours, minutes and seconds, in that case we need to skip columns (:) from the input values.
There are two ways to skip characters:
- Skip any character using %*c in scanf
- And, by specifying the characters to be skipped
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