va roggg Se consideră mulţimea vocalelor {a,e,i,o,u}. Scrieţi o expresie C/C++ care să fie nenulă dacă şi numai dacă variabila c de tip char este o vocală.
Răspunsuri la întrebare
Răspuns de
7
if(strchr("aeiou",c)) cout << 1;
else cout << 0;
else cout << 0;
Răspuns de
11
Expresia de care ai nevoie este:
strchr("aeiou", c);
Ce înseamnă strchr?
strchr(s1, c1) este o funcție care caută caracterul c1 în șirul s1. Dacă îl găsește, se returnează un pointer spre locația primei apariții a lui c1 în s1. Dacă nu îl găsește se returnează NULL. În cazul de față, caracterul din c este căutat într-un șir de caractere ce conține cele 5 vocale. Dacă litera din c este găsită prin cele 5 vocale din șir, atunci înseamnă că este vocală, dacă nu, înseamnă că este altceva. Și cu asta s-ar respecta cerința care cere „să fie nenulă” expresia.
Dacă, în schimb, ar trebui să fie false / true sau 1/0 dacă e vocală sau nu, se mai poate într-un fel:
(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
Asta va fi true/1 dacă c-ul este vocală.
Sau, eventual, poți face și:
(strchr("aeiou", c) != NULL), și atunci ai exact true/1 dacă e vocală, și false/0 dacă nu.
Un exemplu practic:
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char c;
cin>>c;
//strchr("aeiou", c);
if(strchr("aeiou", c) != NULL){
cout<<"Este vocală";
}else{
cout<<"Nu este vocală";
}
}
strchr("aeiou", c);
Ce înseamnă strchr?
strchr(s1, c1) este o funcție care caută caracterul c1 în șirul s1. Dacă îl găsește, se returnează un pointer spre locația primei apariții a lui c1 în s1. Dacă nu îl găsește se returnează NULL. În cazul de față, caracterul din c este căutat într-un șir de caractere ce conține cele 5 vocale. Dacă litera din c este găsită prin cele 5 vocale din șir, atunci înseamnă că este vocală, dacă nu, înseamnă că este altceva. Și cu asta s-ar respecta cerința care cere „să fie nenulă” expresia.
Dacă, în schimb, ar trebui să fie false / true sau 1/0 dacă e vocală sau nu, se mai poate într-un fel:
(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
Asta va fi true/1 dacă c-ul este vocală.
Sau, eventual, poți face și:
(strchr("aeiou", c) != NULL), și atunci ai exact true/1 dacă e vocală, și false/0 dacă nu.
Un exemplu practic:
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char c;
cin>>c;
//strchr("aeiou", c);
if(strchr("aeiou", c) != NULL){
cout<<"Este vocală";
}else{
cout<<"Nu este vocală";
}
}
maarrryyyy:
multumesc frumos
Alte întrebări interesante