Saturday, January 26, 2013

Write a C++ program that gets one text with the maximum of 256 characters from input and converts it to standard format based on the following rules and prints the final standardized text:

11:44 AM


Exercise 8)
Write a program that gets one text with the maximum of 256 characters from input and converts it to standard format based on the following rules and prints the final standardized text:
 The only allowed characters in the text are: {‘a’..’z’}, {‘A’..’Z’}, {‘0’..’9’}, {‘?’,’!’, ’.’ }. Therefore you should delete not allowed characters.
 After each sentence just one space should be included.
 The first letter of each sentence should be capitalized.
 Having another capitalized character in the sentence except the first letter is not allowed.
 Having more than one space after each word is not allowed.
Note that in the entered text of the user the separator of words is the space and the ending of each sentence is ‘.’, as a result you could use these points for your text processing. You should give the detailed report about the text including following information:
 The number of characters
 The number of words
 The number of sentences


Solution-


#include <iostream> 
#include <sstream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cctype>

using namespace std;

int main()
{

int i = 0, count = 0,a=0;
char text[256]; // maximum 256 characters

// create a string vector to hold the words
vector<string> sV;

//--------Printing my name on screen----------------
cout<<" Welcome to the program 2.4 written by Your Name"<<endl;
cout<<"********************************************************************************"<<endl;
cout<<endl<<endl<<endl;
//----receiving the variables from input--------------
cout << "Enter text (max. 256 characters): "; // Enter text input
cin.getline(text, 256, '\n'); // Input goes into text

string s(text), word;

cout << "Your text was: " << endl;

for (i=0; i<s.size(); i++){
if (i == 0) {
s[i] = toupper(s[i]);
cout << s[i];
}
if (isalpha(s[i])){
if (s[i-1] =='?' || s[i-1] == '!' || s[i-1] =='.') {
s[i] = toupper(s[i]);
cout << s[i];
}
else{
s[i] = tolower(s[i]);
cout << s[i];
}
}
else if (isdigit(s[i])){
cout << s[i];
}
else if (isspace(s[i])){
if (s[i-1] != ' ' || s[i+1] != ' ') {
cout << s[i];
}
}

else if (s[i] =='?' || s[i] == '!' || s[i] =='.'){
if (s[i+1] != ' ' || s[i+1] != ' ') {
cout << s[i] << " ";
}
else {
cout << s[i];
}
count=count+1;
}

}
while(s[i] ==' ' || s[i] == '!' || s[i] =='.')
{
cout << s[i];

a=a+1;
}
cout << endl;

// put the sentence into a stream
istringstream instr(s);

// the >> operator separates the stream at a whitespace
while (instr >> word){
// optionally store each word in a string vector
// could use an array, but a vector is easier
sV.push_back(word);
}

cout << "Number of characters in text: " << s.length() << endl; // Counting the lenght of text, excluding the null
cout << "Number of words in text: " <<sV.size() << endl; // now let's look at the vector
cout << "Number of sentences in text: " << count << endl;
system ("pause");
return 0;
}




---------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------













---------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------

Written by

We are one of the initiators of the development of information technology in understanding the need for a solution that is familiar and close to us.

0 comments:

Post a Comment

 

© 2013 Klick Dev. All rights resevered.

Back To Top