Czy ten przykładowy zapis:
char x; if( x == 'a' || x == 'x' || x == 'f' || x == 'd' || x == 'y' || x == 'j' || x == 'z' || x == 'l')
da się jakoś skrócić, aby wciąż nie pisać "x=="?
Jeżeli x to int, to tak:
if(x>0 && x<9) {}
lub
if(x>=1 && x<=8) {}
Podałem przykład ogólny, jak widać za ogólny (już poprawione w pytaniu) :D Tak to wiem że się da. To podam inny przykład:
Czy w powyższym przypadku da się jakoś to skrócić?
https://cpp0x.pl/dokumentacja/standard-C++/find/322
@Mavimix,
char x; if(strchr("axfdyjzl", x)) { ... }
@SzkolnyAdmin Dałem radę użyć tej biblioteki do int, ale średnio mi się udaje jej używać w przypadku tablicy char. Jest to wykonalne?
@Mavimix, Spróbuj z ascii kodami liter
online
#include <iostream> #include <sstream> #include <cstring> #include <algorithm> int main() { char str_[] = "axfdyjzl"; char x; std::string not_find; std::istringstream iss("a x b f d y m j z l"); std::cin.rdbuf(iss.rdbuf()); while (std::cin >> x) { std::cout << ">" << x << std::endl; not_find = ""; if (strchr(str_, x)) { std::cout << "strchr: " << x << std::endl; } else { not_find = "strchr: nie znaleziono " + std::string(1, x); } // https://www.asciitable.com/ // ascii a x f d y j z l int a[8] = { 97, 120, 102, 100, 121, 106, 122, 108 }; int *it = std::find( a, a + 8, (int)x ); if (it != a + 8) { std::cout << "find: " << x << std::endl; } else { not_find += "\nfind: nie znaleziono " + std::string(1, x); } if (not_find != "") std::cout << not_find << std::endl; } return EXIT_SUCCESS; }
93,487 zapytań
142,423 odpowiedzi
322,773 komentarzy
62,908 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj