Jak wartość ze zmiennej char przepisać do int

0

Napisałem taki kawałek kodu.

int zmiana(char x)
	{
		int y;
		if(x=='W'||x=='w')
			y=11;
		else
			if(x=='Q'||x=='w')
				y=12;
			else
				if(x=='K'||x=='k')
					y=13;
				else
				if(x=='A'||x=='a')
					y=14;
				else
				//	y=atoi( x );
		return y;
	} 

Chodzi o to, że mam w pliku zapisane symbole kart 2-9 + W,Q,K,A (walet... ).
Wczytuję je jako znaki, do zmiennej char. Następnie chcę nadać wartości dla W 10, Q 11 itd. a w przypadku gdy karta jest cyfrą, przepisać jej wartość do zmiennej a. I tu pojawia się moje pytanie, jak to zrobić.

0

Ja bym zamiast takiej drabinki robił switcha.

0

atoi przyjmuje jako argument tablicę znaków (koniecznie zakończoną znakiem '\0'), a nie pojedynczy znak. Tak więc Twoje użycie funkcji atoi jest niepoprawne.

Poczytaj o tablicy ASCII. Zmienna typu char przechowuje tak naprawdę kod ASCII reprezentowanego znaku. Możesz napisać:
char x = 'z'; int y = x' i będziesz miał w y kod ASCII małej litery "z".

Więcej nie napiszę bo bym musiał zaspoilować dokumentnie rozwiązanie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1