M02A05 – Operações com Strings

Home Fóruns Linguagem C M02A05 – Operações com Strings

Visualizando 7 respostas da discussão
  • Autor
    Posts
    • #61814
      thiago perez novas
      Participante

      Boa noite, eu utilizo LINUX Ubuntu 18.04 e as funções strcmp, strlwr e strupr não funcionam. strcmp da resultado 0 se as strings forem exatamente iguais e outros valores caso sejam diferentes. strlwr e strupr nem existem pra mim na biblioteca string.h

    • #61868
      Tutora Mayla
      Mestre

      Thiago, as funções strlwr e strupr não fazem parte do padrão do C, são implementadas apenas em versões antigas do compilador de C da Microsoft.
      Sobre a função strcmp, o comportamento dela é esse mesmo, caso as strings sejam iguais ela retorna 0; caso a primeira string seja “menor” que a segunda retorna -1; caso a primeira string seja “maior” que a segunda retorna 1.
      Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

    • #69326

      Boa tarde,

      Segue uma opção para converter letras minúsculas para maiúsculas para quem usa Linux.

      char nome[] = “Uma alternativa”; //criando uma variavel e inserindo algum texto
      int i = 0; //criando um contador
      while (i < strlen(nome)){ //percorrendo os caracteres da minha string
      printf(“%c”, toupper(nome[i])); //convertendo para maiuscula e imprimindo letra a letra
      i++; //incrementando o contador

      Abraço.

      Gustavo

    • #69523
      Tutora Mayla
      Mestre

      Gustavo, obrigada por compartilhar com a comunidade! Graças a interações assim que a comunidade se torna cada vez melhor.
      Caso tenha alguma dúvida durante o seu aprendizado entre em contato que lhe ajudaremos.

    • #129184

      No exemplo dado em aula onde o professor Gustavo demonstra o uso da strcmp, onde s1 = Guanabara e s2 = Gustavo, tem o retorno de -1, pois s1 > s2, no entanto no mesmo código, quando eu subtituo s1 = Siqueira e s2 = Marcos o retorno é l, não entendi o motivo?

    • #129240
      Tutora Jessica
      Moderador

      Ola Marcos, nos envie seu código por completo por favor.

    • #129388

      Bom dia!
      Conforme solicitado segue o código completo.
      #import <stdio.h>
      #import <locale.h>
      #import <string.h>

      void main() {
      setlocale(LC_ALL, “Portuguese”);
      char s1[] = “Guanabara”;
      char s2[] = “Gustavo”;
      int resp = strcmp(s1, s2);
      printf(“\nO resultado da comparação entre %s e %s é %d\n”, s1, s2, resp);

      }
      /*A função strcmp, faz a comparação entre dois strings, se o primeiro string for maior o retorno é -1, mas nesse caso esta dando
      erro, se vc substituir o nome Guanabara por Siqueira e Gustavo por Marcos, o valor de retorno dá diferente */

    • #129409
      Tutora Jessica
      Moderador

      Ola Marcos, trouxe a sua duvida para uma ja existente no forum, dê uma olhada na explicação acima e veja se faz sentido pra você, caso continue com dúvidas retorne ao forum que vamos tentar lhe ajudar. 🖖🏼

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