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…
Vocabulary Task (C language) Solution given below. How to fix the error in the picture attached. txt file is not being created from this code please also include how to create a txt file and where will it be saved in the computer Natural language processing (NLP) is a field of artificial intelligence that seeks to develop the ability of a computer program to understand human language. Usually, the first step of an NLP system is to convert words into numeric codes. Thus, the system converts an input text into a sequence of numeric codes before any high-level analysis. This process is known as text preprocessing. We can only perform text preprocessing if we have a vocabulary of words and their associated numeric codes. Your task is to create a vocabulary of unique words for a given text file and assign a different number from 1 to N to each unique word, with N being the total number of unique words. You must perform this assignment so that the first word in alphabetical order gets the…
Python Programming - (Alpha Tele Num Translator) Assignment Details Introduction: Assignment requires function creation and using string methods. Instructions: The instructions below list the assignment requirements. Many companies use telephone numbers like 555-GET-FOOD so the number is easier for their customers to remember. On a standard telephone, the alphabetic letters are mapped to numbers in the following fashion:A, B and C = 2D, E and F = 3G, H and I = 4J, K and L = 5M, N and O = 6P, Q, R and S = 7T, U and V = 8W, X, Y and Z = 9Write a program that asks the user to enter a 10-character number in the format XXX-XXX-XXXX. The application should display the telephone number with any alphabetic characters that appeared in the original translated to their numeric equivalent. For example, if user enters 555-GET-FOOD, the application should display 555-438-3663.  After displaying the translated telephone number, ask the user if they’d like to enter another number. If the user enters…

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