Zdravím za úkol mám porovnat 3 řetězce. Program jsem dokázal udělat, ale stále si nevím rady, jak ošetřit vstupy (potřebuju to ošetřit tak, aby když uživatel zadá pouze 2 slova, tak mu to vypíše hlášku Neplatný vstup).
Můj kód:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Zadejte 3 slova:" << endl;
string slovo1,slovo2,slovo3;
cin >> slovo1;
cin >> slovo2;
cin >> slovo3;
if (cin.fail()) {cout << "Nespravny vstup." << endl;}
else
{
for (unsigned int i=0;i<slovo1.length();i++)
{slovo1[i]=toupper(slovo1[i]);}
for (unsigned int j=0;j<slovo2.length();j++)
{slovo2[j]=toupper(slovo2[j]);}
for (unsigned int z=0;z<slovo3.length();z++)
{slovo3[z]=toupper(slovo3[z]);}
if (slovo1==slovo2)
{cout << "Slovo1 a slovo2 jsou stejna." << endl;}
else
{cout << "Slovo1 a slovo2 nejsou stejna." << endl;}
if (slovo1==slovo3)
{cout << "Slovo1 a slovo3 jsou stejna." << endl;}
else
{cout << "Slovo1 a slovo3 nejsou stejna." << endl;}
if (slovo2==slovo3)
{cout << "Slovo2 a slovo3 jsou stejna." << endl;}
else
{cout << "Slovo2 a slovo3 nejsou stejna." << endl;}
}
cout << "Pocet znaku ve slovo1 je: " << slovo1.length() << endl;
cout << "Pocet znaku ve slovo2 je: " << slovo2.length() << endl;
cout << "Pocet znaku ve slovo3 je: " << slovo3.length() << endl;
return 0;
}
Přes cin.fail mi to nešlo, taktéž jsem zkoušel, pokud by se délka stringu rovnala 0 (nebo menší než 0). Bohužel nic z toho nešlo. Mohli by jste mi trochu poradit co s tím? Předem děkuji