//ANDREW ALSPAUGH CS1A Chapter 10. P. 589 #5
//
/****************************************************************************
Correct Sentence Capitalization
___________________________________________________________________________
This program displays a string that capitalizes the first letter of each
sentence.
___________________________________________________________________________
//Input
const int SIZE = 100;
char string[SIZE];
//Output
bool capNext = true;
****************************************************************************/
#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;
}
}
Ly9BTkRSRVcgQUxTUEFVR0gJCQlDUzFBICAgICAgICAgICAgIENoYXB0ZXIgMTAuIFAuIDU4OSAjNQovLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpDb3JyZWN0IFNlbnRlbmNlIENhcGl0YWxpemF0aW9uCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpUaGlzIHByb2dyYW0gZGlzcGxheXMgYSBzdHJpbmcgdGhhdCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyIG9mIGVhY2ggCnNlbnRlbmNlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KLy9JbnB1dAoJY29uc3QgaW50IFNJWkUgPSAxMDA7CgljaGFyIHN0cmluZ1tTSVpFXTsKCi8vT3V0cHV0CQoJYm9vbCBjYXBOZXh0ID0gdHJ1ZTsKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgQ2FwU3RyaW5nKGNoYXIgKnN0cmluZywgY29uc3QgaW50IFNJWkUsIGJvb2wgY2FwTmV4dCk7CgppbnQgbWFpbigpCnsKLy9EQVRBIERJQ1RJT05BUlkKCi8vSW5wdXQKCWNvbnN0IGludCBTSVpFID0gMTAwOwoJY2hhciBzdHJpbmdbU0laRV07CgovL091dHB1dAkKCWJvb2wgY2FwTmV4dCA9IHRydWU7CgkKLy9JTlBVVAkKCWNpbi5nZXRsaW5lIChzdHJpbmcsIFNJWkUpOwoKLy9QUk9DRVNTCglDYXBTdHJpbmcgKHN0cmluZywgU0laRSwgY2FwTmV4dCk7CgkKLy9PVVRQVVQKCWNvdXQgPDwgc3RyaW5nOwoJCglyZXR1cm4gMDsKfQoKdm9pZCBDYXBTdHJpbmcoY2hhciAqc3RyaW5nLCBjb25zdCBpbnQgU0laRSwgYm9vbCBjYXBOZXh0KQp7Cglmb3IgKGludCBpID0gMDsgc3RyaW5nW2ldICE9ICdcMCc7IGkrKykKCXsKCQlpZihjYXBOZXh0ICYmIGlzYWxwaGEoc3RyaW5nW2ldKSkKCQl7CgkJCXN0cmluZ1tpXSA9IHRvdXBwZXIoc3RyaW5nW2ldKTsKCQkJY2FwTmV4dCA9IGZhbHNlOwoJCX0KCQkKCQlpZiAoc3RyaW5nW2ldID09ICcuJyB8fCBzdHJpbmdbaV0gPT0gJyEnIHx8IHN0cmluZ1tpXSA9PSAnPycpCgkJCWNhcE5leHQgPSB0cnVlOwoJfQp9