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


#include <iostream> #include <cstdlib> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; char glawnaBukwa(char n){ if((n>='A')&&(n<='Z')){ cout<<"Glawna latinska bukwa e"; } } char latinska(char n){ if((n>='a')&&(n<='z')||((n>='A')&&(n<='Z'))){ cout<<"latinska bukwa e"; } } char cifra(char n){ if((n>='0')&&(n<='9')){ cout<<"Cifra e"; } } char znak(char n){ if((n=='!')||(n=='.')||(n=='?')||(n==';')||(n==':')||(n==',')||(n=='`')){ cout<<"prepinatelen znak e e"; } } int main(int argc, char** argv) { char n; do{ cout<<"wuwedete n "<<endl; cin>>n; glawnaBukwa(n); latinska(n); cifra(n); znak(n); cout<<endl; } while (n!='space'); // нещо не мога да го нагодя със space,а и няма време return 0; }Богдане, общо взето много добре си се ориентирал, обаче защо функциите са от тип char като не връщат нищо? Иначе всичко друго е перфе. И помисли може ли да се направи така, че ако едната функция разпознае символа, да не се налага да се минава през другите…
#include <iostream> using namespace std; //Функция за всички стойности на а int proverka(char a){ if (((a>='A')&&(a<='Z'))||((a>='a')&&(a<='z'))){ a=1; } if ((a>='0')&&(a<='9')){ a=2; } if((a=='!')||(a=='.')||(a=='?')||(a==';')||(a==':')||(a==',')||(a=='`')){ a=3; } //Тук ще вземем стойността на а след проверката с възможните варианти switch(a){ case 1: cout<<"Tova e bukva"; break; case 2: cout<<"Tova e chislo/cifra"; break; case 3: cout<<"Tova e prepinatelen znak"; break; default: cout<<"Ne e nito bukva,nito chislo,nito prepinatelen znak!"; } } int main() { char a; cin>>a; proverka(a); return 0; }Късно видях условите за интервала утре ще я довърша
Вярно! Но дори да намери, че е буква, пак ще проверява и дали символа не е цифра и т.н. Освен това можеше switch-a да го пренесеш в главната програма, а функцията да ти връща просто 1,2,3 за различните типове символи. Така тя ще е универсална.
Готово
#include <iostream> #include <windows.h> #include <conio.h> using namespace std; //Funkciq za vuzmojni stoinosti na a int proverka(char a){ if (((a>='A')&&(a<='Z'))||((a>='a')&&(a<='z'))){ a=1; } if ((a>='0')&&(a<='9')){ a=2; } if((a=='!')||(a=='.')||(a=='?')||(a==';')||(a==':')||(a==',')||(a=='`')){ a=3; } //Tuk shte vezemem vuzmojnite stoinosti na a i shte gi proverim switch(a){ case 1: cout<<"Tova e bukva"<<endl; break; case 2: cout<<"Tova e chislo"<<endl; break; case 3: cout<<"Tova e prepinatelen znak"<<endl; break; default: cout<<"Ne e nito bukva,nito chislo,nito prepinatelen znak!"<<endl; } } int main() { char a; bool loop=false; //Sled 1 zavurtane na cikula ako isakme da sprem cukame Space while (loop==false){ cout<<"Stoinost:"; cin>>a; proverka(a); a=getch(); if (a==32){ loop=true; } } return 0; }Браво, измислил си как да стане и с интервала! Но цикълът може да е и просто while (а!=32) за по-просто. ;-)