Начальный студент C++ здесь, первый класс программирования. Я пытаюсь собрать программу, которая будет определять, есть ли строка в нижнем регистре или нет. Я добрался до кода ниже. Однако мне нужно учитывать пробелы "". Если в строке, которая вводится пользователем, есть пробел, предполагается, что программа вернет, что это не все строчные буквы. Пример:Программа для определения строчек нижнего регистра
ввод: abc def возвращение: строка не имеет нижнего регистра.
Вы бы любезно посоветовали, что было бы лучшим способом учесть это в коде ниже?
ПРИМЕЧАНИЕ: Я знаю, что у меня есть «дополнительные» заголовочные файлы, но это потому, что это будет частью другой программы, и это всего лишь отрывок, чтобы заставить все работать.
Спасибо вам большое!
#include <fstream>
#include <iostream>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <cctype>
#include <iomanip>
using namespace std;
bool die(const string & msg);
bool allLower(const string & l);
int main() {
string l;
cout << "\nEnter a string (all lower case?): ";
cin >> l;
if (allLower(l) == true)
{
cout << "The string is lower case." << endl;
}
else
{
cout << "The string is not lower case." << endl;
}
}
bool allLower(const string & l) {
struct IsUpper {
bool operator()(int value) {
return ::isupper((unsigned char)value);
}
};
return std::find_if(l.begin(), l.end(), IsUpper()) == l.end();
}
bool die(const string & msg){
cout << "Fatal error: " << msg << endl;
exit(EXIT_FAILURE);
}
Так же, как ':: isupper' есть функции, такие как' :: isspace', чтобы проверить для пространств –