Cześć Wszystkim! :)
Żeby nie było, na starcie informuje, że jestem dopiero początkującym :p
Otóż dla zabawy zrobiłem program, który tak jak temat wskazuje zamienia małe litery na wielkie i na odwrót. Do tego jeżeli spotka liczbę to ją ignoruje i wstawia pusty znak w to miejsce. Program wygląda tak:
#include <iostream>
#include <cctype>
using namespace std;
int main()
{
char ch;
cout << "Wprowadz zdanie, @ konczy program." << endl;
cin.get(ch);
while (ch!='@')
{
if (isdigit(ch) == true)
ch = NULL;
else if (isupper(ch) == true)
ch = tolower(ch);
else if (islower(ch) != false)
ch = toupper(ch);
cout << ch;
cin.get(ch);
}
return 0;
}
Oczywiście cała zabawa zawarta jest w pętli. Otóż nie wiem dlaczego, ale w trzecim if:
else if (islower(ch) != false)
ch = toupper(ch);
jak dałem warunek (islower(ch) == true), to program źle działał, tzn. nie zamieniał z mniejszych na większe. Dlaczego? Czym się różni != false od == true? Przecież jak coś jest różne od false, to oznacza, że jest to true, tak? :P Przynajmniej tak mi się wydaje.