codescracker
c++

C++ Program to Capitalize First Letter of Every Word in a File



« C++ Tutorial C++ Example »

This article provides a program in C++ that helps in capitalizing all the words (or every word) in a file. The name of file must be entered by user at run-time. Capitalizing every word means converting first letter of every word in uppercase.

What to do Before Program ?

The program is based on the file. That is, the program given below capitalizes each and every word in a file. Therefore, we need a file (with some content) that must be available inside the current directory. Therefore I'm going to create a file say codescracker.txt first.

I've created the file, here is the snapshot of the current directory (folder where the C++ source code is saved) that contains my newly created file named codescracker.txt:

c++ program capitalize each word in file

Now put some content inside this file. Since the program given below capitalizes each word in a file, therefore I'm recommending you to write all the words in small letters, so that our program can be tested well. Here is the snapshot of the opened file after writing some words inside it:

c++ capitalize each word of file

Now let's move on and create a program in C++ that capitalizes all the words available in this file.

Capitalize all Words in a File

The question is, write a program in C++ that receives the name of file from user at run-time and capitalize each and every words available in that file. Here is its answer:

#include<iostream>
#include<fstream>
#include<sstream>

using namespace std;
int main()
{
   ifstream inf;
   ofstream ouf;
   stringstream str_stream;
   string str;
   char filename[30];
   int i=0, temp=0;

   cout<<"Enter File's Name: ";
   cin>>filename;

   inf.open(filename);
   str_stream<<inf.rdbuf();
   inf.close();
   str = str_stream.str();
   while(str[i])
   {
      if(temp==0)
      {
         str[i] = toupper(str[i]);
         temp = 1;
      }
      else if(isspace(str[i]))
         temp = 0;
      i++;
   }
   ouf.open(filename);
   ouf<<str;
   cout<<"\nAll words capitalized Successfully!";
   cout<<endl;
   return 0;
}

Here is the initial output produced by above C++ program on capitalizing each word in a file given by user:

capitalize each word in file c++

Now enter the name of that file, that was created earlier in the top of this article, that is codescracker.txt and press ENTER key to capitalize all the words of this file like shown in the snapshot given below:

c++ capitalize all words in file

Here is the new snapshot of the same file after executing the above program:

capitalize all words of file c++

As you can see from the above snapshot of the file codescracker.txt, all its words gets capitalized after executing the C++ program.

Note - The stringstream class (defined in sstream header file) allows string object to be treated as a stream.

Note - The rdbuf() is used to return a pointer to stream buffer object that is currently associated with the stream.

To implement capitalization code manually (or to capitalize every word without using toupper()), you can get the code from capitalize every word in string, and can utilize in above program. Do it yourself, for your practice.

If getting trouble, while implementing the manual version of the code that capitalizes every words, then just replace the following block of code (from above program):

   while(str[i])
   {
      if(temp==0)
      {
         str[i] = toupper(str[i]);
         temp = 1;
      }
      else if(isspace(str[i]))
         temp = 0;
      i++;
   }

with the block of code given below:

   while(str[i])
   {
      if(temp==0)
      {
         asc_val = str[i];
         if(asc_val>=97 && asc_val<=122)
         {
            asc_val = asc_val-32;
            str[i] = asc_val;
         }
         temp = 1;
      }
      if(isspace(str[i]))
         temp = 0;
      i++;
   }

You will get the same output as of previous program.

C++ Online Test


« C++ Tutorial C++ Example »



© Copyright 2021. All Rights Reserved.

CodesCracker