Funkcja tolower, toupper w argumencie pobiera znak, a zwraca jej mniejszy/większy odpowiednik, jesli jest to możliwe.
#include <iostream>
#include <cctype>
int main()
{ std::cout << "Podaj tekst do analizy i zakoncz go znakiem '@'" << std::endl;
std::string text;
char ch;
std::cin >> ch;
while (ch != '@')
{ if (isalpha(ch))
{ if (islower(ch))
ch = toupper(ch);
else
ch = tolower(ch); }
text.push_back(ch);
std::cin >> ch; }
std::cout << text << std::endl; }