Что я пытаюсь сделать, это проверить, имеет ли строка, содержащая пользователь, прописную букву или нет. Первая часть кода с перечислимой константой, есть только для другого метода, , который я должен использовать, используя числа, назначенные словам Sunday = 7, Monday = 1, Tuesday = 2 и т. Д. Я пытаюсь пользователь не предлагает номера, но фактическое слово (воскресенье, понедельник, вторник), но я хочу, чтобы они указали день недели с большой буквы.Получение строки, проверка на письмо с капиталом
Проблема, которую я получаю: компилируется отлично, но все, что вы вводите, каким-то образом перенаправляется по пути выполнения, который всегда возвращает «Повторить с заглавной буквы». Это происходит, если я набираю fjdkalfda или воскресенье или воскресенье или что-то еще. Вот код. Извините, если он не в коде, первый пользователь Stack Overflow.
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(){
/*enum DaysOfWeek {
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};*/ //I'm not using this, but I can get my code to work with this
//enumerated constant by asking the user to input a number corresponding
//to the day of the week and then using if-else statements to check, say,
// int Day;
// cin >> Day
// then use if statements to check if Day = a certain number, to give output
cout << "Enter the day of week with a capital letter: ";
string Day;
getline(cin, Day);
if (Day == ("monday") || ("tuesday"))
cout << "Retype w/ a capital letter" << endl;
else if (Day == ("wednesday") || ("thursday"))
cout << "Retype w/ a capital letter" << endl;
else if (Day == ("friday") || ("saturday"))
cout << "Retype w/ a capital letter" << endl;
else if (Day == ("sunday"))
cout << "Retype w/ a capital letter" << endl;
else
{
if (Day == "Monday")
cout << "Moon" << endl;
else if (Day == "Tuesday")
cout << "Mars" << endl; //continue with the days etc...
}
return 0;
}
'если (День == (" Понедельник ") || (" tuesday "))' не делает то, что вы, кажется, думаете, что это так. –
Спасибо за точку. Я просто воспринимаю строки с этим кодом, и если я разделю «понедельник» и «вторник» на отдельные строки, он будет работать, если я наберу «понедельник» или еще что-то еще. Благодарю. Я буду осторожен с логическим оператором ||, возможно, для просто чисел – DWade64
Вы можете выполнить несколько тестов в одной строке, вам просто нужно использовать правильный синтаксис: 'if (Day ==" monday "|| Day = = "tuesday"). В вашем примере первое, если всегда верно. –