• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

switch i case czy da sie...

0 głosów
969 wizyt
pytanie zadane 15 kwietnia 2016 w C i C++ przez Diwad Początkujący (430 p.)
No więc witam Was, czy da się w switch i case wybrać coś za pomocą słów, a nie numerów?
Mam na myśli
switch(sdas)

case jeden:

case dwa:
Jeżeli tak to jak?

4 odpowiedzi

0 głosów
odpowiedź 15 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)

Chodzi ci o to że zamiast int'a będzie string ?

string wyraz;

switch( wyraz )

case costam:
    
break;

case costam:
    
break;

case costam:
    
break;

Jak najbardziej się da. :)

 

Pozdrawiam !

komentarz 15 kwietnia 2016 przez Diwad Początkujący (430 p.)
Próbowałem w ten sam sposób co Ty mi przedstrawiłeś, ale nie działa, wyświetla się błąd:

'jeden': undeclared indentifier
komentarz 15 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
Wstaw ten jeden w " "
komentarz 15 kwietnia 2016 przez Diwad Początkujący (430 p.)

Jeszcze Cię troszkę pomęczę z tym switchem co tu jest źle?
Mój Sokoli wzrok tego nie widzi :D

string wybor;
	cin >> wybor;
	switch (wybor)
	{
	case "jeden":
	{
		dlug uno;
		cout << "To jest dlug ktory dostaniesz gdy zostanie splacony przez jednego z nich: " << uno.dlugi(lb[0]) << endl;
		break;
	}
	case "dwa":
	{
		dlug dos;
		cout << "To jest od dwoch: " << dos.dlugi(lb[0] + lb[1]) << endl;
		break;
	}
	case "trzy":
	{
		dlug tres;
		cout << "A to od wszystkich: " << tres.dlugi(lb[0] + lb[1] + lb[2]) << endl;
		break;
	}
	}

 

komentarz 15 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
Co to jest ten dlug tres; ?

To jest chyba zbędne.

Sprawdź jeszcze dos.dlugi...
komentarz 16 kwietnia 2016 przez maly Nałogowiec (37,190 p.)

Jeszcze Cię troszkę pomęczę z tym switchem co tu jest źle?
Mój Sokoli wzrok tego nie widzi :D

Logi kompilatora mówią co masz źle.

Nie da się w switch użyć niczego poza typami całkowitymi.

0 głosów
odpowiedź 13 czerwca 2016 przez bolus150 Nowicjusz (220 p.)

A nie lepiej to zrobić ifem zrobić?

if(warunek)
{
instrukcja jesli tak
}
elseif(warunek2)
{
instrukcja jesli tak
}

i tak dalej?
komentarz 13 czerwca 2016 przez Bondrusiek Maniak (61,440 p.)
Lepiej zrobić to ifem gdyż switch() operuje tylko na wartosciach numerycznych.
0 głosów
odpowiedź 13 czerwca 2016 przez Declan Obywatel (1,000 p.)
Przykład menu z użyciem znaków ASCII:  https://pl.wikipedia.org/wiki/ASCII

       switch(znak)
        {
        case 49:
            menu();
            _getch();
            break;
        case 50:
            menu ();
            _getch();
            break;
        case 51:
            menu();
            _getch();
            break;
        case 52:
            menu();
            _getch();
            break;
        case 53: exit(0);
            break;            
        }
       _ getch();
}while(znak<49 || znak>53);
    
    //dopoki znak nie jest z zadanego przedzialu ASCII- CLS
    //znaki spoza przedzialu nie wyswietlaja sie
0 głosów
odpowiedź 14 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)

Z tego co widzę temat dość stary, ale dla wszystkich zainteresowanych.. Tak da się zrobić switch'a z tekstów.. jednak nie bezpośrednio.. polecam poczytać sobie o hashingu. Jest to metoda/algorytm przedstawiania tekstów w postaci liczby.. nie chodzi o konwersję (w stylu string>>int).. tutaj dla tekstu jest przypisywane ID.. albo raczej obliczane. W ten sposób można zapisać do jednej wielkiej liczby nawet zdanie składające się z liter i spacji.

Podobne pytania

0 głosów
1 odpowiedź 1,407 wizyt
0 głosów
2 odpowiedzi 1,053 wizyt
pytanie zadane 22 sierpnia 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
1 odpowiedź 213 wizyt

93,771 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,372 pasjonatów

Motyw:

Akcja Pajacyk

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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...