Ex26 do Modulo 3 do Curso de Ling C.

Home Fóruns Linguagem C Ex26 do Modulo 3 do Curso de Ling C.

Visualizando 7 respostas da discussão
  • Autor
    Posts
    • #113916
      Matheus Soares
      Participante

      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) {

      }
      }

    • #113946
      Tutora Jessica
      Moderador

      Ola Matheus, ontem havia encaminhado sua dúvida a uma dúvida já existente no fórum, você chegou a dar uma olhada?

    • #113973
      Matheus Soares
      Participante

      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.

    • #113974
      Tutora Jessica
      Moderador

      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);
    • #116556
      MARCIO PAIVA
      Participante

      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?.

    • #116595
      Tutora Jessica
      Moderador

      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?

    • #116601
      MARCIO PAIVA
      Participante

      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:

    • #116605
      Tutora Jessica
      Moderador

      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”.

Visualizando 7 respostas da discussão
  • Você deve fazer login para responder a este tópico.