c-programming handout#8

9
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,

Upload: sunita-aher

Post on 07-Jan-2017

87 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: C-PROGRAMMING HANDOUT#8

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,

Page 2: C-PROGRAMMING HANDOUT#8

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(){

Page 3: C-PROGRAMMING HANDOUT#8

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

Page 4: C-PROGRAMMING HANDOUT#8

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;

}

Page 5: C-PROGRAMMING HANDOUT#8

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 ]

Page 6: C-PROGRAMMING HANDOUT#8

C-Programming

Walchand Institute of Technology (RC1131), Solapur Page 6

Flowchart for Problem Statement:

Page 7: C-PROGRAMMING HANDOUT#8

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)

{

Page 8: C-PROGRAMMING HANDOUT#8

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 program to Find the Length of a String

2. Write a program to Concatenate Two Strings

3. Write a program to Copy a String

4. Write a program to Remove all Characters in a String except alphabet

Conclusion:

Page 9: C-PROGRAMMING HANDOUT#8

C-Programming

Walchand Institute of Technology (RC1131), Solapur Page 9

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