C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 1
Handout#8
Assignment/Program Statement:
Write a C program using String – Find Number of Vowels, Consonants, Digits and
White Space Character
Learning Objectives:
Students will be able to
- declare and initialize and the string
- read and display the string
- write the program to manipulate the string
Theory:
 In C programming, array of character are called strings. A string is
terminated by null character /0. For example:
"c string tutorial"
Here, "c string tutorial" is a string. When, compiler encounters strings, it
appends null character at the end of string.
 Declaration of strings
Strings are declared in C in similar manner as arrays. Only difference is that,
strings are of char type.
char s[5];
Strings can also be declared using pointer.
char *p
 Initialization of strings
In C, string can be initialized in different number of ways.
char c[]="abcd";
OR,
char c[5]="abcd";
OR,
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 2
char c[]={'a','b','c','d','0'};
OR;
char c[5]={'a','b','c','d','0'};
String can also be initialized using pointers
char *c="abcd";
 Reading Strings from user
o Reading words from user.
char c[20];
scanf("%s",c);
String variable c can only take a word. It is beacause when white
space is encountered, the scanf() function terminates.
Write a C program to illustrate how to read string from terminal.
#include <stdio.h>
int main(){
char name[20];
printf("Enter name: ");
scanf("%s",name);
printf("Your name is %s.",name);
return 0;
}
Output
Enter name: Dennis Ritchie
Your name is Dennis.
Here, program will ignore Ritchie because, scanf() function takes
only string before the white space.
o Reading a line of text
C program to read line of text manually.
#include <stdio.h>
int main(){
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 3
char name[30],ch;
int i=0;
printf("Enter name: ");
while(ch!='n') // terminates if user hit enter
{
ch=getchar();
name[i]=ch;
i++;
}
name[i]='0'; // inserting null character at end
printf("Name: %s",name);
return 0;
}
This process to take string is tedious. There are predefined functions
gets() and puts in C language to read and display string respectively.
int main(){
char name[30];
printf("Enter name: ");
gets(name); //Function to read string from user.
printf("Name: ");
puts(name); //Function to display string.
return 0;
}
Both, the above program has same output below:
Output
Enter name: Tom Hanks
Name: Tom Hanks
 C supports a wide range of functions that manipulate null-terminated strings
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 4
So.No. Function & Purpose
1 strcpy(s1, s2);
Copies string s2 into string s1.
2 strcat(s1, s2);
Concatenates string s2 onto the end of string s1.
3 strlen(s1);
Returns the length of string s1.
4 strcmp(s1, s2);
Returns 0 if s1 and s2 are the same; less than 0 if s1<s2; greater
than 0 if s1>s2.
5 strchr(s1, ch);
Returns a pointer to the first occurrence of character ch in string
s1.
6 strstr(s1, s2);
Returns a pointer to the first occurrence of string s2 in string s1.
 gets() and puts()
Functions gets() and puts() are two string functions to take string input from
user and display string respectively as mentioned in previous chapter.
#include<stdio.h>
int main(){
char name[30];
printf("Enter name: ");
gets(name); //Function to read string from user.
printf("Name: ");
puts(name); //Function to display string.
return 0;
}
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 5
Though, gets() and puts() function handle string, both these functions are
defined in "stdio.h" header file
[Reference: http://www.tutorialspoint.com/cprogramming/c_strings.htm and
http://www.programiz.com/c-programming/string-handling-functions ]
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 6
Flowchart for Problem Statement:
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 7
Algorithm:
1. Start
2. v=c=d=s=0
3. read the line of string
4. if line[i]!=’0’
if (line[i]=='a' || line[i]=='e' || line[i]=='i' || line[i]=='o' || line[i]=='u' ||
line[i]=='A' || line[i]=='E' || line[i]=='I' || line[i]=='O' || line[i]=='U')
c++
go to step 4
elseif ((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z'))
v++
go to step 4
elseif(line[i]>='0'&&c<='9')
d++
go to step 4
elseif (line[i]==' ')
s++
go to step 4
else
go to step 5
5. Display Vowels, Consonants, Digits and White spaces
6. Stop
Program:
#include<stdio.h>
int main()
{
char line[150];
int i,v,c,ch,d,s,o;
v=c=d=s=0;
printf("Enter a line of string:n");
gets(line);
for(i=0;line[i]!='0';++i)
{
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 8
if(line[i]=='a' || line[i]=='e' || line[i]=='i' || line[i]=='o' || line[i]=='u' ||
line[i]=='A' || line[i]=='E' || line[i]=='I' || line[i]=='O' || line[i]=='U')
++v;
else if((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z'))
++c;
else if(line[i]>='0'&&c<='9')
++d;
else if (line[i]==' ')
++s;
}
printf("Vowels: %d",v);
printf("nConsonants: %d",c);
printf("nDigits: %d",d);
printf("nWhite spaces: %d",s);
return 0;
}
Input:
Enter a line of string:
This program is easy 2 understand
Output:
Vowels: 9
Consonants: 18
Digits: 1
White spaces: 5
Practice Problem Statement:
1. Write a C program to find the Length of a String.
2. Write a C program to Concatenate Two Strings.
3. Write a C program to Copy a String.
4. Write a C program to remove all characters in a String except alphabet.
C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 9
Conclusion:
Thus a C program using string – Find Number of Vowels, Consonants, Digits and
White Space Character is implemented.
Learning Outcomes:
At the end of this assignment, students are able to
- declare and initialize and the string
- read and display the string
- write the program to manipulate the string

CP Handout#8

  • 1.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 1 Handout#8 Assignment/Program Statement: Write a C program using String – Find Number of Vowels, Consonants, Digits and White Space Character Learning Objectives: Students will be able to - declare and initialize and the string - read and display the string - write the program to manipulate the string Theory:  In C programming, array of character are called strings. A string is terminated by null character /0. For example: "c string tutorial" Here, "c string tutorial" is a string. When, compiler encounters strings, it appends null character at the end of string.  Declaration of strings Strings are declared in C in similar manner as arrays. Only difference is that, strings are of char type. char s[5]; Strings can also be declared using pointer. char *p  Initialization of strings In C, string can be initialized in different number of ways. char c[]="abcd"; OR, char c[5]="abcd"; OR,
  • 2.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 2 char c[]={'a','b','c','d','0'}; OR; char c[5]={'a','b','c','d','0'}; String can also be initialized using pointers char *c="abcd";  Reading Strings from user o Reading words from user. char c[20]; scanf("%s",c); String variable c can only take a word. It is beacause when white space is encountered, the scanf() function terminates. Write a C program to illustrate how to read string from terminal. #include <stdio.h> int main(){ char name[20]; printf("Enter name: "); scanf("%s",name); printf("Your name is %s.",name); return 0; } Output Enter name: Dennis Ritchie Your name is Dennis. Here, program will ignore Ritchie because, scanf() function takes only string before the white space. o Reading a line of text C program to read line of text manually. #include <stdio.h> int main(){
  • 3.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 3 char name[30],ch; int i=0; printf("Enter name: "); while(ch!='n') // terminates if user hit enter { ch=getchar(); name[i]=ch; i++; } name[i]='0'; // inserting null character at end printf("Name: %s",name); return 0; } This process to take string is tedious. There are predefined functions gets() and puts in C language to read and display string respectively. int main(){ char name[30]; printf("Enter name: "); gets(name); //Function to read string from user. printf("Name: "); puts(name); //Function to display string. return 0; } Both, the above program has same output below: Output Enter name: Tom Hanks Name: Tom Hanks  C supports a wide range of functions that manipulate null-terminated strings
  • 4.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 4 So.No. Function & Purpose 1 strcpy(s1, s2); Copies string s2 into string s1. 2 strcat(s1, s2); Concatenates string s2 onto the end of string s1. 3 strlen(s1); Returns the length of string s1. 4 strcmp(s1, s2); Returns 0 if s1 and s2 are the same; less than 0 if s1<s2; greater than 0 if s1>s2. 5 strchr(s1, ch); Returns a pointer to the first occurrence of character ch in string s1. 6 strstr(s1, s2); Returns a pointer to the first occurrence of string s2 in string s1.  gets() and puts() Functions gets() and puts() are two string functions to take string input from user and display string respectively as mentioned in previous chapter. #include<stdio.h> int main(){ char name[30]; printf("Enter name: "); gets(name); //Function to read string from user. printf("Name: "); puts(name); //Function to display string. return 0; }
  • 5.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 5 Though, gets() and puts() function handle string, both these functions are defined in "stdio.h" header file [Reference: http://www.tutorialspoint.com/cprogramming/c_strings.htm and http://www.programiz.com/c-programming/string-handling-functions ]
  • 6.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 6 Flowchart for Problem Statement:
  • 7.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 7 Algorithm: 1. Start 2. v=c=d=s=0 3. read the line of string 4. if line[i]!=’0’ if (line[i]=='a' || line[i]=='e' || line[i]=='i' || line[i]=='o' || line[i]=='u' || line[i]=='A' || line[i]=='E' || line[i]=='I' || line[i]=='O' || line[i]=='U') c++ go to step 4 elseif ((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z')) v++ go to step 4 elseif(line[i]>='0'&&c<='9') d++ go to step 4 elseif (line[i]==' ') s++ go to step 4 else go to step 5 5. Display Vowels, Consonants, Digits and White spaces 6. Stop Program: #include<stdio.h> int main() { char line[150]; int i,v,c,ch,d,s,o; v=c=d=s=0; printf("Enter a line of string:n"); gets(line); for(i=0;line[i]!='0';++i) {
  • 8.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 8 if(line[i]=='a' || line[i]=='e' || line[i]=='i' || line[i]=='o' || line[i]=='u' || line[i]=='A' || line[i]=='E' || line[i]=='I' || line[i]=='O' || line[i]=='U') ++v; else if((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z')) ++c; else if(line[i]>='0'&&c<='9') ++d; else if (line[i]==' ') ++s; } printf("Vowels: %d",v); printf("nConsonants: %d",c); printf("nDigits: %d",d); printf("nWhite spaces: %d",s); return 0; } Input: Enter a line of string: This program is easy 2 understand Output: Vowels: 9 Consonants: 18 Digits: 1 White spaces: 5 Practice Problem Statement: 1. Write a C program to find the Length of a String. 2. Write a C program to Concatenate Two Strings. 3. Write a C program to Copy a String. 4. Write a C program to remove all characters in a String except alphabet.
  • 9.
    C-Programming Walchand Institute ofTechnology (RC1131), Solapur Page 9 Conclusion: Thus a C program using string – Find Number of Vowels, Consonants, Digits and White Space Character is implemented. Learning Outcomes: At the end of this assignment, students are able to - declare and initialize and the string - read and display the string - write the program to manipulate the string