//ANDREW ALSPAUGH CS1A Chapter 10. P. 589 #5
//
/****************************************************************************
Correct Sentence Capitalization
___________________________________________________________________________
This program displays a string that capitalizes the first letter of each
sentence.
___________________________________________________________________________
****************************************************************************/
#include <iostream>
#include <cstring>
using namespace std;
void CapString(char *string, const int SIZE, bool capNext);
int main()
{
//DATA DICTIONARY
//Input
const int SIZE = 100;
char string[SIZE];
//Output
bool capNext = true;
//INPUT
cin.getline (string, SIZE);
//PROCESS
CapString (string, SIZE, capNext);
//OUTPUT
cout << string;
return 0;
}
void CapString(char *string, const int SIZE, bool capNext)
{
for (int i = 0; string[i] != '\0'; i++)
{
if(capNext && isalpha(string[i]))
{
string[i] = toupper(string[i]);
capNext = false;
}
if (string[i] == '.' || string[i] == '!' || string[i] == '?')
capNext = true;
}
}
Ly9BTkRSRVcgQUxTUEFVR0gJCQlDUzFBICAgICAgICAgICAgIENoYXB0ZXIgMTAuIFAuIDU4OSAjNQovLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpDb3JyZWN0IFNlbnRlbmNlIENhcGl0YWxpemF0aW9uCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpUaGlzIHByb2dyYW0gZGlzcGxheXMgYSBzdHJpbmcgdGhhdCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyIG9mIGVhY2ggCnNlbnRlbmNlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIENhcFN0cmluZyhjaGFyICpzdHJpbmcsIGNvbnN0IGludCBTSVpFLCBib29sIGNhcE5leHQpOwoKaW50IG1haW4oKQp7Ci8vREFUQSBESUNUSU9OQVJZCgovL0lucHV0Cgljb25zdCBpbnQgU0laRSA9IDEwMDsKCWNoYXIgc3RyaW5nW1NJWkVdOwoKLy9PdXRwdXQJCglib29sIGNhcE5leHQgPSB0cnVlOwoJCi8vSU5QVVQJCgljaW4uZ2V0bGluZSAoc3RyaW5nLCBTSVpFKTsKCi8vUFJPQ0VTUwoJQ2FwU3RyaW5nIChzdHJpbmcsIFNJWkUsIGNhcE5leHQpOwoJCi8vT1VUUFVUCgljb3V0IDw8IHN0cmluZzsKCQoJcmV0dXJuIDA7Cn0KCnZvaWQgQ2FwU3RyaW5nKGNoYXIgKnN0cmluZywgY29uc3QgaW50IFNJWkUsIGJvb2wgY2FwTmV4dCkKewoJZm9yIChpbnQgaSA9IDA7IHN0cmluZ1tpXSAhPSAnXDAnOyBpKyspCgl7CgkJaWYoY2FwTmV4dCAmJiBpc2FscGhhKHN0cmluZ1tpXSkpCgkJewoJCQlzdHJpbmdbaV0gPSB0b3VwcGVyKHN0cmluZ1tpXSk7CgkJCWNhcE5leHQgPSBmYWxzZTsKCQl9CgkJCgkJaWYgKHN0cmluZ1tpXSA9PSAnLicgfHwgc3RyaW5nW2ldID09ICchJyB8fCBzdHJpbmdbaV0gPT0gJz8nKQoJCQljYXBOZXh0ID0gdHJ1ZTsKCX0KfQ==