C++   How to Program (Early Objects Version)
C++ How to Program (Early Objects Version)
10th Edition
ISBN: 9780134448824
Author: Paul Deitel; Harvey M. Deitel
Publisher: Pearson Education (US)
bartleby

Concept explainers

Question
Book Icon
Chapter 22, Problem 22.41E
Program Plan Intro

22.41E a) Program Description:

The program declares an array of characters and integer to store the alphabets and corresponding counts initialized to 0;
It takes multi line inputs from the user and stores those into a vector<string>. Iteration over the vector elements, character by character, incrementing the counts as characters are encountered.

22.41E a) Program

/*  * 22_41a_charactercount.cpp string handling and total alphabet counts table
 */
#include<string>
#include<iostream>
#include<cstring>
#include<vector>
usingnamespace std;

intmain() {
	char alphaBets[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T','U', 'V', 'W', 'X', 'Y', 'Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
	int counts[]={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0};


	vector<string> input;
string str, strInput;
//take input from user
    cout<<"Please enter any text. Enter ZZZ to finish typing:\n\n";

getline(cin, str);
while ( str!= "ZZZ") {
	input.push_back(str);
	getline(cin, str);
    }

//process the input string
for (constauto& em: input){
	strInput = em;
	for(int i=0; i < strInput.length();i++){
		char test = strInput.at(i);
			for(int j=0;j <sizeof(alphaBets); j++){

				if( test == alphaBets[j]){
					counts[j]+=1;

				}
			}
	}
    }
    cout<<"The Alphabets counts in the supplied text are as below :\n\n\n";

for(int n=0;n <sizeof(alphaBets); n++){
	cout<<"Count of "<<alphaBets[n]<<"  = "<<counts[n]<<endl;
    }

return 0;
}//end main

22.41E a) Sample Output

Sample Output 22.41 a)

Please enter any text. Enter ZZZ to finish typing:

This is another test, of a justification program
for 65 chars long, with so many inputs and ! and commas,
Therefore, I have to admit this is just
a very basic program which does nothing but keeps testing
the input provided for length and applies justification logic
to the right & left parts of 65th position.
There can be many possible improvements
to this very very basic program. Thanks !
ZZZ

The Alphabets counts in the supplied text are as below :

Count of A = 0
Count of B = 0
Count of C = 0
Count of D = 0
Count of E = 0
Count of F = 0
Count of G = 0
Count of H = 0
Count of I = 1
Count of J = 0
Count of K = 0
Count of L = 0
Count of M = 0
Count of N = 0
Count of O = 0
Count of P = 0
Count of Q = 0
Count of R = 0
Count of S = 0
Count of T = 3
Count of U = 0
Count of V = 0
Count of W = 0
Count of X = 0
Count of Y = 0
Count of Z = 0
Count of a = 23
Count of b = 5
Count of c = 9
Count of d = 7
Count of e = 26
Count of f = 8
Count of g = 9
Count of h = 18
Count of i = 28
Count of j = 3
Count of k = 2
Count of l = 6
Count of m = 10
Count of n = 19
Count of o = 25
Count of p = 13
Count of q = 0
Count of r = 22
Count of s = 25
Count of t = 31
Count of u = 7
Count of v = 7
Count of w = 2
Count of x = 0
Count of y = 6
Count of z = 0

22.41E b) Program Description

The program stores lines of text input into a vector<string> and then iterates over each element, tokenizing strings into words using strtok and keeps a count of the words in an array which is finally printed out. The max word length assumed is 45 as that's the longest word in English dictionary (pneumonoultramicroscopicsilicovolcanoconiosis ).

22.41E b) Program

/*  * 22_41b_wordslengthcpp string handling and total words & their length counts table
 */
#include<string>
#include<iostream>
#include<cstring>
#include<vector>
usingnamespace std;

intmain() {

	//Assume the maximum word length = 45 ( as per modern dictionary
	//keep counts lengthwise , index 0 for  length one char
	int counts[45]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};


	vector input;
string str, strInput;
//take input from user
    cout<<"Please enter any text. Enter ZZZ to finish typing:\n\n";

getline(cin, str);
while ( str!= "ZZZ") {
	input.push_back(str);
	getline(cin, str);
    }

	constchar space[2]= " ";

//process the input string
for (constauto& em: input){
	char * temp = newchar[em.length() + 1];
	strcpy(temp, em.c_str());

	char * word = strtok(temp, space);
	while(word != 0){
			int wordLen = strlen(word);
				if(	wordLen >0)
				 counts[wordLen-1]+=1;
		word =strtok(NULL, space);
	}
    }
    cout<<"The Words Length and their counts in the supplied text are as below :\n\n"
<<"\tWord Length\t\t\t\t"<<"Total count\n"
	<<"\t------------\t\t\t\t------------\n"<<endl;

for(intn=0;n< 45; n++){
    cout<<"\t "<<n+1<<"\t\t\t\t "<<counts[n]<<endl;
    }

return 0;
}//end main

22.41E b) Sample Output

pneumonoultramicroscopicsilicovolcanokoniosis is a disease caused by exposure to volcanic silica, also termed as silicosis.
ZZZ

The Words Length and their counts in the supplied text are as below :

Word Length Total count
------------ ------------

1    2
2  4
3  0
4  1
5  0
6  3
7  1
8  2
9  1
10  0
11  0
12  0
13  0
14  0
15  0
16  0
17  0
18  0
19  0
20  0
21  0
22  0
23  0
24  0
25  0
26  0
27  0
28  0
29  0
30  0
31  0
32  0
33  0
34  0
35  0
36  0
37  0
38  0
39  0
40  0
41  0
42  0
43  0
44  0
45  1

22.41E c) Program Description

The program will use map to keep words uniquely with their respective counts and a vector<string> to keep the words in the order they are encountered.
Finally, using the vector, all words will be iterated and their respective counts will be fetched from the map.

Explanation:

22.41E c)Program

/* * 22_41c_wordscount.cpp string handling and unique words & their length counts table
 */
#include<string>
#include<iostream>
#include<cstring>
#include<vector>
#include<map>
#include<algorithm>// to convert whole string to uppercase or lowercase using STL.
usingnamespace std;

intmain() {

	map

22.41E c) Sample Output

Please enter any text. Enter ZZZ to finish typing:

To be or not To be is an old proverb yet interests many in the modern world
To understand this better a course in modern literature has to be pursued and that too in a deep sense
ZZZ

The unique Words and their counts in the supplied text are as below :

		Word 				Total count
	--------------------				------------
	
	 to						4
	 be						3
	 or						1
	 not						1
	 is						1
	 an						1
	 old						1
	 proverb					1
	 yet						1
	 interests					1
	 many						1
	 in						3
	 the						1
	 modern						2
	 world						1
	 understand					1
	 this						1
	 better						1
	 a						2
	 course						1
	 litratire					1
	 has						1
	 pursued					1
	 and						1
	 that						1
	 too						1
	 deep						1
	 sense						1

Blurred answer
Students have asked these similar questions
The images I have uploaded are the part 1 to 4 and questions below are continue on the questions uploaded 5. C++ Class Template with Method Stubs #pragma once #include <iostream> #include <string> #include <stdexcept> #include <vector>   template <typename T> class HashTable { private:     struct Entry {         std::string key;         T value;         bool isOccupied;         bool isDeleted;         Entry() : key(""), value(), isOccupied(false), isDeleted(false) {}     };       Entry* table;     size_t capacity;     size_t size;     double loadFactorThreshold;           size_t customHash(const std::string& key) const {         size_t hash = 5381;         for (char c : key) {             hash = ((hash  <<  5) + hash)  +  c;         }         return hash;     }       size_t probe(const std::string& key, bool forInsert = false) const;     void resize();   public:     // Constructor     HashTable(size_t initialCapacity = 101);         // Big…
this project is NOT for graded(marks) purposes, please help me with the introduction. give me answers for the project. i will include an image explaining everything about the project.
Java Graphics (Bonus In this lab, we'll be practicing what we learned about GUIs, and Mouse events. You will need to implement the following: A GUI with a drawing panel. We can click in this panel, and you will capture those clicks as a Point (see java.awt.Point) in a PointCollection class (you need to build this). The points need to be represented by circles. Below the drawing panel, you will need 5 buttons: O о о ○ An input button to register your mouse to the drawing panel. A show button to paint the points in your collection on the drawing panel. A button to shift all the points to the left by 50 pixels. The x position of the points is not allowed to go below zero. Another button to shift all the points to the right 50 pixels. " The x position of the points cannot go further than the You can implement this GUI in any way you choose. I suggest using the BorderLayout for a panel containing the buttons, and a GridLayout to hold the drawing panel and button panels. Regardless of how…

Chapter 22 Solutions

C++ How to Program (Early Objects Version)

Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Fundamentals of Information Systems
Computer Science
ISBN:9781337097536
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage