C++ How to Program (10th Edition)
C++ How to Program (10th Edition)
10th Edition
ISBN: 9780134448237
Author: Paul J. Deitel, Harvey Deitel
Publisher: PEARSON
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
Create a relationship between the common field (Technician Number) of the two tables. Make sure that each client must have 1 and only 1 technician assigned, and each technician can have multiple clients. 2. Create a query to show the Client Number, Client Name, Billed, Paid for clients in Anderson city. Save the query. 3. Create a query to show the Technician Number, Last Name, First Name, YTD Earnings for technicians whose Hourly Rate is greater than or equal to 30. Save the query. 4. Create a query to show Client Number, Client Name, Billed, Paid for clients whose technician number is 22 and whose Billed is over 300. Save the query. 5. Create a query to show the Technician Number, Last Name, First Name, Client Number, Client Name for clients whose technician number 23. Save the query. 6. Create a query to show the Technician Number, Last Name, First Name, Client Number, Client Name for clients whose technician number 23 or 29. Save the query Help please Microsoft office access
Dijkstra's Algorithm (part 1).  Consider the network shown below, and Dijkstra’s link-state algorithm. Here, we are interested in computing the least cost path from node E (note: the start node here is E) to all other nodes using Dijkstra's algorithm. Using the algorithm statement used in the textbook and its visual representation, complete the "Step 0" row in the table below showing the link state algorithm’s execution by matching the table entries (i), (ii), (iii), and (iv) with their values.  Write down your final [correct] answer, as you‘ll need it for the next question.
4. |z + 5 - 5i| = 7

Chapter 22 Solutions

C++ How to Program (10th Edition)

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.
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