Programovani C - switch case
Tenhle program by mel prevadet velka pismena na mala a naopak, nevite proc mi to hazi error "case label does not reduce to an integer constant"?
#include <stdio.h>
int main(){
char a;
char b;
scanf("%c", &a);
switch(a){
case a<91:
b = a + 32;
break;
case a>97:
b = a - 32;
break;
}
printf("%c", b);
}
Pretoze na toto treba pouzit if a nie switch.
"case label" je v tvojom pripade a<91 a a>97, a to konstanty naozaj nie su.
Za "case" musí následovat výraz, který je možné v době překladu vyhodnotit jako integer. To tvoje podmínky nejsou. Pro tenhle úkol se switch nehodí, použij normální if/else nebo třeba celý switch nahraď výrazem b=((a<91)?(a+32):((a>97)?(a-32):b))
Diky, muzes mi jeste prosim poradit co mam napsat za : kdyz mam treba vyraz (znak>=48 && znak<=57)? printf("Cislice %c", znak): ; kdyz tam prakticky uz nic nepotrebuju? Musim tam napsat treba printf(""); nebo je neco jednodussiho?
cpp.html
Co takhle jednoduché makro, napadá mě třeba: