Home › Fóruns › Linguagem C › Ex26 do Modulo 3 do Curso de Ling C.
- Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 11 meses, 2 semanas atrás por Tutora Jessica.
-
AutorPosts
-
-
13 de abril de 2023 às 19:57 #113916Matheus SoaresParticipante
Boa tarde. Gostaria de saber qual foi o erro que eu deixei passar neste codigo.
Quando executado com: “else if (st!=rj && st!=sp && st!=mg && st!=pr && st!=sc && st!=ba) {}”
ele retorna apenas esa condicional, porém, se eu a retiro do código, as outras estruturas não são executadas, como se não existissem. Creio que seja o “==” entre duas variaveis char, mas n tenho certeza. Como eu soluciono este erro?
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>void main () {
setlocale(LC_ALL, “Portuguese”);
char st[2];
char rj = “RJ”;
char sp = “SP”;
char ba = “BA”;
char mg = “MG”;
char sc = “SC”;
char pr = “PR”;
printf(“Em qual estado do Brasil você nasceu? “);
gets(st);
if (st==rj) {
printf(“Nascendo no %s você é Carioca!”, st);
} else if (st==sp) {
printf(“Nascendo em %s você é Paulista!”, st);
} else if (st==mg) {
printf(“Nascendo em %s você é Mineiro!”, st);
} else if (st==ba) {
printf(“Nascendo em %s você é Bahiano!”, st);
} else if (st==pr) {
printf(“Nascendo em %s você é Paranaense!”, st);
} else if (st==sc) {
printf(“Nascendo em %s você é Catarinense!”, st);
} else if (st!=rj && st!=sp && st!=mg && st!=pr && st!=sc && st!=ba) {}
} -
14 de abril de 2023 às 10:10 #113946Tutora JessicaModerador
Ola Matheus, ontem havia encaminhado sua dúvida a uma dúvida já existente no fórum, você chegou a dar uma olhada?
-
14 de abril de 2023 às 11:45 #113973Matheus SoaresParticipante
Sim, porém, no link que a srt mandou, infelizmente eu não consegui adaptar ao meu caso, visto que, como pode ver acima, há inúmeras variáveis.
E para completar, ao criar a variável int est, este comando “est = strcmp(rj, sp, mg, ba, sc, pr);” está incorreto pois só permite apenas o uso de duas variáveis. Aí não consigo encontrar uma solução. -
14 de abril de 2023 às 12:11 #113974Tutora JessicaModerador
Não é possível fazer comparação de strings com “==”, é necessário utilizar a função
strcmp(st,"rj") == 0
.
Essa função retorna um inteiro, ele será -1 se a primeira string for “menor” que a segunda, 0 se forem iguais e 1 se a primeira string for “maior” que a segunda. Para utilizada é necessário incluir a biblioteca #import <string.h>
Você também pode colocar a opção de letra maiúscula e minúscula , dessa forma:if (strcmp(st,"rj") == 0 || strcmp(st,"RJ") == 0 ) { printf("Nascendo no %s você é Carioca!", st);
-
21 de maio de 2023 às 15:01 #116556MARCIO PAIVAParticipante
Boa tarde Jéssica tudo bem?.
Tenho uma pergunta em relação ao exercício 26, como faço para que na estrutura condicional aceite a string de letra maiúscula ou que comando utilizar?.
-
22 de maio de 2023 às 10:02 #116595Tutora JessicaModerador
Ola Marcio, não sei se consegui entender bem sua pergunta.. você quer colocar os estados em letra maiúscula? No código acima ele usa as siglas com letras maiúsculas.. seria isso?
-
22 de maio de 2023 às 11:18 #116601MARCIO PAIVAParticipante
Bom dia Jéssica tudo bem?
Falo sobre esse comando:
} else if (strcmp(uf,rj)== 0) {
dentro de do exercício 26 como faço para colocar condição de para maiúscula:
-
22 de maio de 2023 às 12:05 #116605Tutora JessicaModerador
Ola Marcio, agora entendi, essa condição esta pegando a variável (rj) , dentro da variável, você coloca com letra maiúscula, dessa forma:
char rj = “RJ”;
A variável rj recebe “RJ”.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.