replace punctuation with a whitespace

Bjarne Stroustrup “Programming Principles and Practice Using C++”
Chapter 11 Exercise 6
Using std_lib_facilities.h by Bjarne Stroustrup.

[code language=”cpp”]
// Philipp Siedler
// Bjarne Stroustrup’s PPP
// Chapter 11 Exercise 6

#include "std_lib_facilities.h"

void calculate() {
while (cin) {
string s;
string s_mod;
char quit;
cout << "enter string and I will replace punctuation with a whitespace" << endl;
if (cin >> quit && quit == ‘x’) {
break;
}
cin.putback(quit);
if (getline(cin, s)) {
for (char c : s) {
if (!ispunct(c)) {
s_mod += c;
}
else {
s_mod += " ";
}
}
cout << s_mod << endl;
}
else {
cin.clear();
cout << "enter a valid string or x to quit" << endl;
}
}
}

int main()
try
{
calculate();
keep_window_open();
}
catch (runtime_error e) {
cout << e.what() << endl;
keep_window_open();
}
catch (…) {
cout << "Exiting" << endl;
keep_window_open();
}
[/code]

Output:
enter string and I will replace punctuation with a whitespace
Hello world, how are you today? Hope fine as usual.
Hello world  how are you today  Hope fine as usual
enter string and I will replace punctuation with a whitespace

Leave a Reply