Se consideră că numele unei persoane este scris corect dacă el este format din De literele mari şi cele mici ale alfabetului latin, începe cu literă mare, iar literele ce urmează sunt mici. Scrieți un program care verifică dacă şirul de caractere citit de la tastatură reprezintă un nume corect de persoană. În cazul unui nume e corect, la ecran se va afişa mesajul CORECT, iar în caz contrar caz contrar – INCORECT. ​

Răspuns :

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

int main() {

   char s[30];

   int i;

   cin>>s;

   if(s[0] < 'A' || s[0] > 'Z') {

       cout<<"INCORECT";

   }

   else {

       int ok = 1;

       for(i = 1; i < strlen(s); i++) {

           if(s[i] < 'a' || s[i] > 'z') ok = 0;

       }

       if(ok == 1) cout<<"CORECT";

       else cout<<"INCORECT";

   }

}

Explicație:

Prima dată citim șirul (linia 8) - dacă ați făcut altfel citirea, să pui codul de citire cum ați făcut voi

Apoi verificăm prima literă (să fie majusculă): s[0]. Dacă e mai mică decât A sau mai mare decât Z (adică înafara intervalului A-Z), înseamnă că nu e majusculă latină, deci numele e incorect, și afișăm altfel.

Dacă verificarea pentru prima literă a fost ok, facem verificarea pentru restul cuvântului, anume să conțină doar litere mici de aici înainte:

setăm un ok = 1, că n-am găsit încă nicio literă greșită, apoi începem căutarea prin restul cuvântului (de la 1 până la sfârșit)

Verificăm fiecare literă (s[i], pentru că i va fi pe rând 1, 2, 3, ...) dacă este cumva mai mică decât a sau mai mare decât z (adică înafara intervalului a-z), înseamnă că nu e literă mică, deci nu e corect cuvântul, și setăm ok = 0.

La sfârșit verificăm dacă ok =  1 (adică nu s-a găsit nicio literă greșită) și afișăm CORECT. Dacă s-a găsit o literă greșită și ok e 0, atunci se va afișa INCORECT.

Vezi imaginea Artur99