0% found this document useful (0 votes)
39 views14 pages

More Example Using Loops

The document discusses several examples of using loops and characters in C programming. It shows code for printing a calendar using loops, counting the length of a line and number of vowels in a message by reading characters one by one. It also discusses functions for reading and writing single characters like getchar() and putchar(), and functions in ctype.h for checking character properties. Examples are given for converting a string of digits to a number and counting the number of words in a text.

Uploaded by

Shohagh Shosagh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views14 pages

More Example Using Loops

The document discusses several examples of using loops and characters in C programming. It shows code for printing a calendar using loops, counting the length of a line and number of vowels in a message by reading characters one by one. It also discusses functions for reading and writing single characters like getchar() and putchar(), and functions in ctype.h for checking character properties. Examples are given for converting a string of digits to a number and counting the number of words in a text.

Uploaded by

Shohagh Shosagh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

C Programming Loops and Repetitive Computations For

More Example Using Loops


Example 35 (contd)
print the first day printing of first row printing of remaining rows of calendar i= i+1 no exit no i < =n? yes j=1 no i = i+7 m=i+j j = j+1

i < 7? yes printf("%6d", i)

m <= n? yes yes printf("%6d", i) no j <= 7?

printf("\n")

R. K. Ghosh (IIT-Kanpur)

C Programming

January 27, 2011

4 / 10

C Programming Loops and Repetitive Computations For

More Example Using Loops


Example 35 (contd)
#i n c l u d e < s t d i o . h> i n t main ( ) { int i = 0; i n t n , m, day , j , w ; p r i n t f ( E n t e r number o f d a y s i n t h e month : ) ; s c a n f ( %d , &n ) ; p r i n t f ( E n t e r day : ) ; s c a n f ( %d , &day ) ; printf ( Mon Tue Wed Thu Fri Sat Sun \n\n ) ;

/ P r i n t f i r s t row o f t h e c a l e n d a r , and s u b s e q u e n t r o w s o f t h e c a l e n d a r / }

R. K. Ghosh (IIT-Kanpur)

C Programming

January 27, 2011

4 / 10

C Programming Loops and Repetitive Computations For

More Example Using Loops


Example 36 (contd)
// P r i n t t h e f i r s t row o f t h e c a l e n d a r s w i t c h ( day ) { c a s e 1 : w = 6 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 7 ) p r i n t f ( %6d , ++i c a s e 2 : w = 1 2 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 6 ) p r i n t f ( %6d , ++i c a s e 3 : w = 1 8 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 5 ) p r i n t f ( %6d , ++i c a s e 4 : w = 2 4 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 4 ) p r i n t f ( %6d , ++i c a s e 5 : w = 3 0 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 3 ) p r i n t f ( %6d , ++i c a s e 6 : w = 3 6 ; p r i n t f ( %d , w , ++i ) ; w h i l e ( i < 2 ) p r i n t f ( %6d , ++i c a s e 7 : w = 4 2 ; p r i n t f ( %d , w , ++i ) ; default : }
R. K. Ghosh (IIT-Kanpur) C Programming January 27, 2011 4 / 10

) ; break ; ) ; break ; ) ; break ; ) ; break ; ) ; break ; ) ; break ; break ;

p r i n t f ( I n v a l i d day \n ) ;

r e t u r n 1;

C Programming Loops and Repetitive Computations For

More Example Using Loops


Example 36 (contd)
// F i n i s h t h e p r i n t i n g o f t h e p r i n t f ( \n ) ; f i r s t row .

// P r i n t r e s t o f t h e o t h e r r o w s o f t h e c a l e n d a r f o r ( ; i <=n ; i=i +7) { f o r ( j = 1 ; j <= 7 ; j ++) { m =i+j ; i f (m <= n ) p r i n t f ( %6d ,m) ; e l s e break ; } p r i n t f ( \n ) ; }

R. K. Ghosh (IIT-Kanpur)

C Programming

January 27, 2011

4 / 10

C Programming Characters

Programming with Character Types


Scanf Format specication %c in scanf allows to read character. Similarly %c in printf allow character printing. scanf does nt skip white spaces. To skip white spaces, scanf(" %c", &ch); should be used. End of line can be detected by checking if character read is \n
do { s c a n f ( %c , &ch ) ; } w h i l e ( ch != \n ) ; // d e t e c t i n g end o f l i n e

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Using getcar and putchar C provides functions for single character read/write. getchar() and putchar(). ch = getchar(); reads one character. getchar() returns an int, so can be stored in an int variable. These functions are simpler and ecient (scanf and printf are generic).
do { ch = g e t c h a r ( ) ; } w h i l e ( ch != \n ) ; // d e t e c t i n g end o f l i n e u s i n g g e t c h a r ( ) w h i l e ( ( ch = g e t c h a r ( ) ) != \n ) ; // s i m p l e r v e r s i o n w h i l e ( ( ch = g e t c h a r ( ) ) == ) ; // s k i p p i n g s p a c e s

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Using getcar and putchar Mixing getchar() and scanf is not advisable. It could create problems as follows:
p r i n t f ( E n t e r an i n t e g e r : ) ; / S c a n f would r e a d i b u t p e e k n e x t c h a r a c t e r ( n o t consumed ) / s c a n f ( %d , & i ) ; p r i n t f ( E n t e r a command : ) ; // R e t u r n s new l i n e o r l e f t o v e r command = g e t c h a r ( ) ; character

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Example: Length of a Line
#i n c l u d e < s t d i o . h> i n t main ( ) { c h a r ch ; int length = 0; p r i n t f ( Enter a message : ) ; w h i l e ( ( ch = g e t c h a r ( ) ) != \n ) l e n g t h ++; p r i n t f ( L e n g t h o f t h e m e s s a g e : %d\n , l e n g t h ) ; }

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Example (contd)
#i n c l u d e < s t d i o . h> i n t main ( ) { c h a r ch , nV = 0 , nO = 0 ; p r i n t f ( Enter a message : ) ; w h i l e ( ( ch = g e t c h a r ( ) ) != \n ) { s w i t c h ( ch ) { case a : case e : case i : case o : c a s e u : nV++; b r e a k ; default : nO++; } } p r i n t f ( V o w e l s = %d and l e n g t h = %d\n , nV , nV + nO ) ; }
R. K. Ghosh (IIT-Kanpur) C Programming January 30, 2011 1/1

C Programming Characters

Programming with Character Types


Ctype.h Denes number of functions on characters. isascii(), isdigit(), isalpha(), isalnum(), isupper, islower(), isxdigit(), ispunct(), toupper(), tolower(), etc.

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Example
#i n c l u d e <c t y p e . h> #i n c l u d e < s t d i o . h> i n t main ( ) { c h a r ch ; p r i n t f ( \ n V a l i d u p p e r c a s e c h a r a c t e r s : \n ) ; f o r ( ch = 0 ; i s a s c i i ( ch ) ; ch++) i f ( i s u p p e r ( ch ) ) p r i n t f ( %c , t o l o w e r ( ch ) ) : p r i n t f ( \n ) ; p r i n t f ( \ n V a l i d l o w e r c a s e c h a r a c t e r s : \n ) ; f o r ( ch = 0 ; i s a s c i i ( ch ) ; ch++) i f ( i s l o w e r ( ch ) ) p r i n t f ( %c , t o u p p e r ( ch ) ) ; p r i n t f ( \n ) ; }

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Atoi Given an input consisting of digits read as characters. The program converts the input string to a number. The string may additionally include a negative sign for negative numbers.

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


#i n c l u d e < s t d i o . h> i n t main ( ) { c h a r ch ; int n = 0 , sign = 1; p r i n t f ( Enter a s t r i n g ch = g e t c h a r ( ) ; // i f ( ch == ) { s i g n = 1; // ch = g e t c h a r ( ) ; // } of d i g i t s : ) ; Read f i r s t c h a r a c t e r Handle n e g a t i v e s i g n Read n e x t c h a r a c t e r

do { n = n 10 + ch 4 8 ; // C o v e r s i o n f o r m u l a } w h i l e ( ( ch = g e t c h a r ( ) ) != \n ) p r i n t f ( n = %d \n , n s i g n ) ; }

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

C Programming Characters

Programming with Character Types


Counting Words Given a input text nd the number of words in it. A word is separated from another word by at least one white space. Any number of white spaces may precede a word. End of the text is signalled by EOF character. EOF character is generated by CTRL-d.

R. K. Ghosh (IIT-Kanpur)

C Programming

January 30, 2011

1/1

You might also like