Проверка на символ и изречение

Да се направят функции, които проверяват дали даден символ е:

  • главна латинска буква
  • латинска буква
  • арабска цифра
  • препинателен знак

Да се направи главна програма, която тества тези функции.

По желание: Да се направи програма, която да проверява дали изречение, въведено от клавиатурата отговаря на следните правила:

  1. Започва с главна буква
  2. Съдържа поне една дума
  3. Не съдържа цифри
  4. Завършва с препинателен знак
Публикувано в 10в, 11а, 11в с етикети . Постоянна връзка.

4 Responses to Проверка на символ и изречение

  1. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    #include <cstring>
    #include <cctype>
    using namespace std;
    
    int check(char *str)
    {
        if ((str[0]>='A')&&(str[0]<='Z'))
        {
           int i=0;
           bool interwal=false;
           for (;str[i]!='\0';i++)
           {
             if(!str[i]==' ') interwal=true;
             if (isdigit(str[i])) return 0;
           }
           
           if (((str[i-1]=='.')||(str[i-1]=='!')||(str[i-1]=='?'))&&(interwal)) return 1;
           else return 0;
        }
        else return 0;
    }
    
    
    
    
    
    
    int main(int argc, char *argv[])
    {
        char str[255];
        cin.getline(str, 255);
        if (check(str)) cout<<"WALIDEN!"<<endl;
        else cout<<"NEWALIDEN!"<<endl;      
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    • Данаил каза:

      Вярно, но в условието пише да се направят отделни функции за всяко нещо, а не една обща. А и като са отделни, ще са по-универсални и ще може да се ползват и на други места. Другото е, че името на променливата interwal е малко заблуждаващо – би трябвало да се казва ima_duma или нещо подобно. Дори мислех, че имате грешка (и сам се учудих на това :-), но после проследих кода и видях, че само името на променливата е подвеждащо…

  2. kaloyan каза:
    function glavna_latinska(ch:char):boolean;
    begin
      result:=((ch>='A') and (ch<='Z'));
    end;
    
    function latinska_bukva(ch:char):boolean;
    begin
      result:=((ch>='A') and (ch<='z'));
    end;
    
    function cifra(ch:char):boolean;
    begin
      result:=((ch>='0') and (ch<='9'));
    end;
    
    function prepinatelen_znak(ch:char):boolean;
    begin
      result:=((ch='.') or (ch='?') or (ch='!'));
    end;
    
    VAR ch:char;
    BEGIN
    write('Vavedi simvol: '); readln(ch);
    writeln('Simvola e: ');
      if glavna_latinska(ch) then writeln(' Glavna latinska bukva');
      if latinska_bukva(ch) then writeln(' Latinska bukva');
      if cifra(ch) then writeln(' Arabska cifra');
      if prepinatelen_znak(ch) then writeln(' Prepinatelen znak');
    
    readln;
    END.

Вашият коментар