Zamiana liter na liczby C

0

Witam, mam do napisania program i jedną z jego podfunkcji ma być zamiana liter na liczby, np.
a=0
b=1
c=2
d=3...
j=9
Chciałem zrobić coś na wzór switch i case, ale nie operują switch na charach, przynajmniej nie wiem jak to zaimplementować, może ma ktoś jakąś małą sugestie?
p.s. Wesołych świąt.

printf("poczatek i koniec");
scanf("%c%c",&nn,&mm);
switch(nn){
case a:
case b:
case c:

}

1

Jeśli zamieniasz liczby z zakresu 0-9 to wystarczy odjąć/dodać (do wartości liczbowej chara) 48 (szukaj: ASCII), jeśli kilkucyfrowe, to już trzeba szukać inaczej.

A co do switcha to nie działa Ci ponieważ etykiety muszą być stałymi.

0

Dzięki za szybką odpowiedź, spróbuje tym sposobem i napisze o efektach:), pozdrawiam.

1

Jeśli zamieniasz liczby z zakresu 0-9 to wystarczy odjąć/dodać (do wartości liczbowej chara) 48

magic numbers;

letter = tolower(letter);
digit = letter - 'a';
0

trzeba było odjąc 49 :)
poradziłem sobie w ten sposób
printf("poczatek i koniec");
scanf("%c%c",&nn,&mm);
nn=nn-49;
mm=mm-49;

switch (nn){
case 48:n=0;break;
case 49:n=1;break;
case 50:n=2;break;
case 51:n=3;break;
case 52:n=4;break;
case 53:n=5;break;
case 54:n=6;break;
case 55:n=7;break;
case 56:n=8;break;
case 57:n=9;break;
default: break;
}

0
Ci3li napisał(a):

trzeba było odjąc 49 :)
Brednie, 48 lub '0'

Ci3li napisał(a):

poradziłem sobie w ten sposób ...
Nie poradziłeś sobie.
Wystarczy tylko to:

printf("poczatek i koniec");
scanf("%c%c",&nn,&mm);
mm-='0';
n=nn-'0';

i żadnych bezsensownych switch

0

małe a-97
0-48
97-x=48
97-48=x
49=x
czyli odjąć 49
a ten bezsensowny switch był potrzebny po to, abym mógł pracować na int

0

Chcesz na int to:

mm=tolower(mm)-'a';
n=tolower(nn)-'a';
#include <stdio.h>
#include <ctype.h>

int main() 
  {
   char clf,crt;
   int lf,rt;
   scanf(" %c %c",&clf,&crt);
   lf=tolower(clf)-'a';
   rt=tolower(crt)-'a';
   printf("%d .. %d\n",lf,rt);
   scanf(" %c %c",&clf,&crt);
   lf=tolower(clf)-'a';
   rt=tolower(crt)-'a';
   printf("%d .. %d\n",lf,rt);
   return 0;
  }

http://ideone.com/nOe08M

0

Dzieki, to faktycznie ulatwienie, hyle czoło, dopiero ucze się progamować więc nie znam wielu rozwiązań.

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