In this Programming tutorial, we will learn how to write a script in C++ and Python that can count the number of alphabets, digits, and spaces present in a text file. To write such a script we should know how to perform file handling in C++ and Python.
With the help of file handling, we can read the data from a text file using the programming languages, and based on the data we can tell the number of alphabets, digits, and spaces present in the file.
When we read data from a text file using file handling we generally read the data in string or character format. So in order to categorize whether the character or string is an alphabet or a digit we can use its ASCII value.
Example
The ASCII value of numbers starts from 48 to 57, which represents all numbers 0 to 9. For UpperCase Alphabets, the ASCII code starts from 41 up to 90. And for LowerCase alphabets the ASCII code starts from 97 up to 122.
C Program to Count no. of alphabets, digits, and spaces present in a file
#include <stdio.h>
# include <string.h>
int main()
{
char ch;
int ascii,alpha_count=0,space_count=0,digit_count=0;
// create a file pointer
FILE *file ;
// open the file in read mode
file = fopen("file1.txt", "r") ;
while(1)
{ //read the chracter from the file
ch = fgetc(file);
// if the chracter is in the end of the file
if ( ch == EOF )
break ;
//print the read chracter
printf("%c", ch);
// convert the chracter into equivalent ascii code
ascii=ch;
//check if the chracter is an Alphabet
if(ascii>63 && ascii<91 || ascii>96 && ascii<123)
alpha_count+=1;
// check if the chracter is an empty space
else if(ch==' ')
space_count+=1;
//check if the chracter is a Digit
else if(ascii>47&&ascii<58)
digit_count++;
}
fclose(file);
printf("\n---------The Above File Statement Has----------------------\n");
printf("No. of Alphabets :: %d \n",alpha_count);
printf("No. Of Digits :: %d\n",digit_count);
printf("No. Of White Spaces :: %d ",space_count);
return 0;
}
Output
G0QPLSZagX o1oB4OuAoaEGY JtmGiEtdEbBarKh0gX S1RXOi3oaMAKOx6Ct7WLl1om Q1yjf1Y2GLW g5RFs9kRgYgz2
hg4 95HwAmpQgWsigOgibDS4qx7Jq ADqtEACDrZGG6aZ3ZDAt hb9QGR8V6qJE6NX mwx67PntAyLrcrDo vj2h ahFqR
1cMphaOjRX ObkIu JzBgEORdvyhPR jUCc1uE LkqpZUBQ4 CudskxiV kn5qWy0 m4M51A qrNR2t 5Q8UVGQlo8HRor
TRaL 7Nsu9rwRy2heHYBj rTgTAu9 PaMSUSOZqGzfGRfUwnW0UymRD32 1kSrMRULKbkbrKeCcRtiwW3F2pbMQF pNcd
dY5y61m8NIB8mUWS Q3CKZMk94bZAmPcvoDTkMaxw4rCDc WDhjx06I4IotsxOWAs x25VIc4tKpbJf Lw2SY78nTdTM2
9 ZRYoixdgef2vQ3 ncJcw5DYeYUIagHG0gNLWyylT gcEC3rgVmD6zVuPFJ0Oe0
---------The Above File Statement Has----------------------
No. of Alphabets :: 421
No. Of Digits :: 79
No. Of White Spaces :: 32
--------------------------------
C++ Program to Count no. of alphabets, digits, and spaces present in a file
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
//open file in read mode
ifstream file("file1.txt");
char ch;
int ascii,alpha_count=0,space_count=0,digit_count=0;
while(file)
{
//read character
file.get(ch);
cout<<ch;
//convert the chracter into ASCII code
ascii=ch;
// if the chracter is an Uppercase or LowerCase Alphabet
if(ascii>63 && ascii<91 || ascii>96 && ascii<123)
alpha_count++;
// if the chracter is an empty space
else if(ch==' ')
space_count++;
// if the chracter is a digit
else if(ascii>47&&ascii<58)
digit_count++;
}
cout<<"The Above Data has";
cout<<"\n"<<alpha_count<<" :: Alphabets\n";
cout<<digit_count<<" :: Digits\n";
cout<<space_count<<" :: White Spaces";
return 0;
}
Output
G0QPLSZagX o1oB4OuAoaEGY JtmGiEtdEbBarKh0gX S1RXOi3oaMAKOx6Ct7WLl1om Q1yjf1Y2GLW g5RFs9kRgYgz2
hg4 95HwAmpQgWsigOgibDS4qx7Jq ADqtEACDrZGG6aZ3ZDAt hb9QGR8V6qJE6NX mwx67PntAyLrcrDo vj2h ahFqR
1cMphaOjRX ObkIu JzBgEORdvyhPR jUCc1uE LkqpZUBQ4 CudskxiV kn5qWy0 m4M51A qrNR2t 5Q8UVGQlo8HRor
TRaL 7Nsu9rwRy2heHYBj rTgTAu9 PaMSUSOZqGzfGRfUwnW0UymRD32 1kSrMRULKbkbrKeCcRtiwW3F2pbMQF pNcd
dY5y61m8NIB8mUWS Q3CKZMk94bZAmPcvoDTkMaxw4rCDc WDhjx06I4IotsxOWAs x25VIc4tKpbJf Lw2SY78nTdTM2
9 ZRYoixdgef2vQ3 ncJcw5DYeYUIagHG0gNLWyylT gcEC3rgVmD6zVuPFJ0Oe0
The Above Data has
421 :: Alphabets
79 :: Digits
32 :: White Spaces
Python
#open file in read mode
with open("file1.txt", 'r') as file:
#read file data
data = file.read()
#print file data
print(data)
alpha_count, space_count, digit_count= [0,0,0]
#analyze file data
for ch in data:
#convert the chracter into ascii code
ascii = ord(ch)
if ascii>63 and ascii<91 or ascii> 96 and ascii<123:
alpha_count+=1
elif ch ==" ":
space_count+=1
elif ascii>47 and ascii<58:
digit_count+=1
print("The Above Data has")
print(f"{alpha_count} :: Alphabets")
print(f"{digit_count} :: Digits")
print(f"{space_count} :: White Spaces")
Output
G0QPLSZagX o1oB4OuAoaEGY JtmGiEtdEbBarKh0gX S1RXOi3oaMAKOx6Ct7WLl1om Q1yjf1Y2GLW g5RFs9kRgYgz2
hg4 95HwAmpQgWsigOgibDS4qx7Jq ADqtEACDrZGG6aZ3ZDAt hb9QGR8V6qJE6NX mwx67PntAyLrcrDo vj2h ahFqR
1cMphaOjRX ObkIu JzBgEORdvyhPR jUCc1uE LkqpZUBQ4 CudskxiV kn5qWy0 m4M51A qrNR2t 5Q8UVGQlo8HRor
TRaL 7Nsu9rwRy2heHYBj rTgTAu9 PaMSUSOZqGzfGRfUwnW0UymRD32 1kSrMRULKbkbrKeCcRtiwW3F2pbMQF pNcd
dY5y61m8NIB8mUWS Q3CKZMk94bZAmPcvoDTkMaxw4rCDc WDhjx06I4IotsxOWAs x25VIc4tKpbJf Lw2SY78nTdTM2
9 ZRYoixdgef2vQ3 ncJcw5DYeYUIagHG0gNLWyylT gcEC3rgVmD6zVuPFJ0Oe0
The Above Data has
421 :: Alphabets
79 :: Digits
32 :: White Spaces
Wrapping Up!
In this programming tutorial, we learned how to use ASCII code values to count the number of alphabets, spaces, and digits present in a text file. We could also have used the inbuilt string methods provided by the programing language to check if the character is an alphabet or digit, but it's good to know how to analyze a character without using any inbuilt methods. Because in interviews you might have restricted to use of any inbuilt function.
People are also reading:
- Rearrange an array in maximum minimum form
- Find whether an array is subset of another array
- Longest subarray with sum as K
- Merge Two Sorted Arrays in-place
- Print all subarrays with 0 sum
- Write a Program to convert given inches into equivalent yard, and feet
- Program to Find LCM and HCF of two numbers
- Move all zeros present in an array to the end
- Longest Palindromic Subsequence using Dynamic Programming
- Write a C++ Program to print a Man using Graphics
Leave a Comment on this Post