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
lab assignment 1.13 LAB: Introduction to Cyptography (classes/constructors) Cryptography is the practice of encryption. Information Security uses cryptography techniques to encrypt and decrypt data. A simple encryption method might take plaintext and mix up the letters using some predetermined pattern and then use that pattern to decrypt the data for reading. Ciphers are the algorithms used to put the data into its secret pattern and then systematically decrypt it for reading. This script is going to use a famous simple cipher called the Caesar Cipher. It is a substitution cipher where each letter in the text is 'shifted' in a certain number of places. It uses the alphabet as the primary pattern and then based on the shift number, it would shift all the letters and replace the alphabet with our pattern. For example, if our shift number was 3, then A would be replaced with D, if we performed a right shift. As an example: Text = "THE CAT IS VISIBLE AT MIDNIGHT" Ciphertext = "WKH FDW LV…
Q7
5.25 matlab

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