Rozpoznawanie znaków w c

witam, mama taki program, który jest częścią większego, który ma sprawdzać znak wprowadzony przez usera, jeśli znak jest inny niż +,-,*,/ to ma ponownie prosić o wprowadzenie znaku.

jest to program na linuxa,

coś jest nie tak bo, jak wprowadzę np. cyfrę 4 to także wychodzi z pętli.

http://wklej.to/qeed

dodatkowo po wprowadzeniu najpierw złego znaku a potem dobrego pojawia się

segmentation fault

bardzo proszę o pomoc.

:slight_smile:

if (znak_dzial[0] == '+' || '-' || '*' || '/')

Skądś to wytrzasnął? To ZAWSZE da prawdę(’-’ > 0).

if (znak_dzial[0] == '+' || znak_dzial[0] == '-' || ...)

seg fault masz jeśli użytkownik wprowadzi więcej niż jeden znak. Zamiast formatu “%s” i tablicy charów użyj “%c” i jednego chara.

prawdę mówiąc to dopiero dzisiaj zmieniłem na:

if (znak_dzial[0] == '+' || '-' || '*' || '/')

wcześniej było tak jak ty mówisz.

sprawdzę i dam znać.

:slight_smile:

dzięki już wszystko działa jak należy.

:slight_smile:

Zastanów się nad:

if(strchr("+-*/",znak_dzial[0])) [/code]