Sentencias If-Else y Switch Con Caracteres y Palabras
Sentencias If-Else y Switch Con Caracteres y Palabras
Sentencias If-Else y Switch Con Caracteres y Palabras
Cuando se trabaja con las sentencias switch e if-else es importante resaltar que
estas trabajan con operadores relacionales por lo que siempre funcionan con
números, al utilizar caracteres lo que realmente se hace es traducir estos a un
valor numérico el cual está dado por una tabla estándar, llamada tabla ASCII.
int main(){
int op;
if(op==1){
printf("el numero fue el 1");
}else{
printf("el numero no fue el 1");
}
return 0;
}
int main(){
char op='\0';
if(op=='a'){
printf("la letra es a");
}else{
printf("la letra no es a");
}
return 0;
}
En el caso de los números estos se colocan de forma directa al lado del operador
relacional, pero en el caso de los caracteres estos deben ser colocados entre
comillas simples, Ejemplo: op == 1 vs op == ‘a’, de esta forma se le indica al
compilador que se quiere trabajar con el valor numérico de dicho carácter.
int main(){
int o;
printf(" Introduzca un numero(0-9): ");
scanf("%i", &o);
fflush(stdin);
switch(o){
case 1:
printf(" El numero dado fue el numero uno.\n");
break;
case 2:
printf(" El numero dado fue el numero dos.\n");
break;
default:
printf(" El numero dado fue diferente a 1,2,3 y fue: %i.\n",o);
break;
}
return 0;
}
int main(){
char c;
printf("\n Introduzca un caracter(a-z): ");
scanf("%c", &c);
fflush(stdin);
switch(c){
case 'a':
printf(" El caracter dado dado fue la letra \'a\'.\n");
break;
case 'b':
printf(" El caracter dado dado fue la letra \'b\'.\n");
break;
default:
printf(" El caracter dado fue diferente a a,b,c y fue: \'%c\'.\n",c);
break;
}
return 0;
}
int main(){
char s1[10], s2[10];
int res;
printf("\n Introduzca dos palabras consecutivas");
printf("\n separadas por un espacio(p1 p2): ");
scanf("%s %s",&s1,&s2);
fflush(stdin);
res=strcmp(s1,s2);
printf(" El valor que retorna la funcion strcmp() es: %i\n",res);
if(res==0){
printf(" Ambas palabras son iguales \'%s\'=\'%s\'.\n",s1,s2);
}else if(res==1){
printf(" La palabra \'%s\' es mayor que \'%s\'.\n",s1,s2);
}
else if(res==-1){
printf(" La palabra \'%s\' es menor que \'%s\'.\n",s1,s2);
}
return 0;
}
Es importante recordar que para declarar una variable que guardará un solo
carácter se declara de la forma habitual pero para guardar palabras o cadenas de
caracteres debemos indicar un tamaño máximo de palabra que la variable va a poder
almacenar, para esto se utilizan corchetes, Ejemplo: char nombre[10]; donde 10
sería el tamaño maximo de palabra que se podría almacenar en la variable.
También se debe estar pendiente de que para leer o imprimir variables que
contengan palabras o cadenas de caracteres, se debe utilizar el identificador %s
ya que la “s” en este caso es la inicial de string que significa palabra en
ingles.
int main(){
char s1[10]
printf("\n Indique una opcion (si/no): ");
scanf("%s",&s1);
fflush(stdin);
if(strcmp(s1,"si")==0){
printf(" Eligio la opcion si.\n");
}
else if(strcmp(s1,"no")==0){
printf(" Eligio la opcion no.\n");
}
else{
printf(" Eligio una opcion diferente a las especificadas.\n");
}
return 0;
}