Je rencontre des difficultés pour vérifier des caractères spécifiques dans ma chaîne. Les exigences de la fonction est de vérifier que "Tous les caractères (sauf le premier) sont en minuscules, espaces, ou ponctuation (seulement ';' ou ',')" Je dois également m'assurer que le dernier caractère dans le C-String est soit un! ou a.Recherche de caractères spécifiques
Voici ce que j'ai.
bool isItSentence(const char* s)
{
int x = strlen(s);
for (int c = 0; s[c] != '\0'; c++)
{
if (!isupper(s[0])) return false;
if (isupper(s[c]) && c > 0) return false;
if (s[c] != ' ' && s[c] != ';' && s[c] != ',' && !islower(s[c])) return false;
}
if (s[x - 1] != '.' && s[x - 1] != '!') return false;
return true;
}
int main()
{
std::string str = "Smelly.";
std::cout << isItSentence(str.c_str()) << std::endl;
system("pause");
}
Cependant, je continue à comprendre que ce n'est pas une phrase, même quand elle devrait l'être. Des suggestions sur la façon dont je peux résoudre ce problème?