[c] konwersja do numeru ascii

kawafis44
Użytkownik
Użytkownik
Posty: 474
Rejestracja: 22 paź 2007, o 20:55
Płeć: Mężczyzna
Lokalizacja: Gliwice
Podziękował: 416 razy
Pomógł: 2 razy

[c] konwersja do numeru ascii

Post autor: kawafis44 »

Kod: Zaznacz cały

char litera;
int liczba;
litera = 'a';
liczba = int(litera) - int('a') +1;
jak poprawić ten kod, żeby dla litery 'a' podawało mi liczbę 1, dla 'b' liczbę 2 itd.?
wydawało mi się, że int(zmienna_char) zwraca nr w tablicy ascii, ale coś mi się to nie chce skompilować w c, bo jest parse error.
pozdro!
Ostatnio zmieniony 11 sty 2008, o 19:30 przez kawafis44, łącznie zmieniany 1 raz.
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

[c] konwersja do numeru ascii

Post autor: Szemek »

a sprawdź czy zamiana nawiasów robi różnicę

Kod: Zaznacz cały

char litera;
int liczba;
litera = 'a';
liczba = (int) litera - (int) 'a' +1;
kawafis44
Użytkownik
Użytkownik
Posty: 474
Rejestracja: 22 paź 2007, o 20:55
Płeć: Mężczyzna
Lokalizacja: Gliwice
Podziękował: 416 razy
Pomógł: 2 razy

[c] konwersja do numeru ascii

Post autor: kawafis44 »

ok, Twoja rada pomogła
teraz mam inne pytanie:

Kod: Zaznacz cały

int zma, zmb;
do
{
printf("Wprowadź dwie liczby integer: ");
scanf("%d %d",zma,zmb);
} while NIE_WPROWADZONO_CZEGOś_W_RODZAJU_INTEGER_SPACJA_INTEGER;
jaki musi być warunek, żeby program się nie wysypał, jeśli użytkownik wpisze np. "sfsdfafasd.fsf,s". i czy dobrze, że zastosowałem tutaj scanf zamiast np. fgets ?

pozdro!
adek05
Użytkownik
Użytkownik
Posty: 450
Rejestracja: 3 kwie 2007, o 18:38
Płeć: Mężczyzna
Lokalizacja: Biała Podlaska
Podziękował: 12 razy
Pomógł: 68 razy

[c] konwersja do numeru ascii

Post autor: adek05 »

Imho, to warunek jest nie w tym miejscu co trzeba. Powinieneś raczej sprawdzać dane które wczytujesz, czyli warunek przy scanf. Ale teraz nie wiem jak ma się sprawdzanie stanu strumienia, tzn. czy nie ma jakiegoś błędu, o ile cstdio dysponuje czymś takim.
ODPOWIEDZ