Dado um texto (uma string), deve-se percorrê-lo para encontrar quais palavras-chave estão presentes e informar a direção e elevação, de acordo com seus significados, para que o canhão da base seja direcionado. Pode-se haver mais de um par de dados, porém sempre estando na ordem: uma direção seguida de uma elevação.
Observações:
O programa deve ser case insensitive, ou seja, deve entender a letra maíuscula como igual à sua correspondente minúscula.
Palavras-chaves:
Direção
mercurio = N
venus = NE
terra = L
marte = SE
jupiter = S
saturno = SO
urano = O
netuno = NO
Elevação do canhão
verde = 30
amarelo = 45
vermelho = 60
#include <stdio.h>
#include <string.h>
int main(){
char texto[1001];
int i;
while(scanf("%s", texto)!=EOF){//Ler palavra por palavra. Enquanto não chegar ao final do arquivo:
//Verifica se uma letra (char) é minúscula ou maiúscula segundo a tabela ASCII:
for(i = 0; texto[i] != '\0'; i++)
if(texto[i] > 96 && texto[i] < 123)//(96 é '`' e 123 é '{') Se minúscula:
texto[i] -= 32;//(32 é '[espaço]') Transforma em uma letra maiúscula. (Você precisa conhecer a tabela ASCII para saber os valores, e também poderia fazer algo assim: if(texto[i] >= 'a' && texto[i] <= 'z')
//Ou:
//if(texto[i] > 64 && texto[i] < 91)//Se maiúscula:
//texto[i] += 32;//Transforma em uma letra minúscula
//Agora compare a palavra e imprima na tela seu referente. Comparando as palavras chaves com a palavra da vez, esta convertida para maiúscula, utiliza-se a função strcmp() para a comparação:
if (strcmp(texto, "MERCURIO")==0)
printf("N - ");
else if (strcmp(texto, "VENUS")==0)
printf("NE - ");
else if (strcmp(texto, "TERRA")==0)
printf("L - ");
else if (strcmp(texto, "MARTE")==0)
printf("SE - ");
else if (strcmp(texto, "JUPITER")==0)
printf("S - ");
else if (strcmp(texto, "SATURNO")==0)
printf("SO - ");
else if (strcmp(texto, "URANO")==0)
printf("O - ");
else if (strcmp(texto, "NETUNO")==0)
printf("NO - ");
else if (strcmp(texto, "VERDE")==0)
printf("30\n");//Para elevações do canhão, após imprimir o valor, também pular linha.
else if (strcmp(texto, "AMARELO")==0)
printf("45\n");
else if (strcmp(texto, "VERMELHO")==0)
printf("60\n");
}
return 0;
}