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 1 ano, 10 meses atrás por
Tutora Jessica.
-
AutorPosts
-
-
13 de abril de 2023 às 19:57 #113916
Matheus Soares
ParticipanteBoa 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 #113946
Tutora Jessica
ModeradorOla 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 #113973
Matheus Soares
ParticipanteSim, 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 #113974
Tutora Jessica
ModeradorNã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 #116556
MARCIO PAIVA
ParticipanteBoa 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 #116595
Tutora Jessica
ModeradorOla 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 #116601
MARCIO PAIVA
ParticipanteBom 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 #116605
Tutora Jessica
ModeradorOla 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.