Ir ao conteúdo

Dúvida com strcmp em C


CarolPM

Posts recomendados

Postado

Bem, eu estava fazendo um programa onde eu preciso usar a função 'strcmp' da biblioteca 'string.h'... Meu problema é:(vou dar em forma de exemplo)

Digamos que eu tenha o código abaixo:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char comando[4];
int i;
printf("Digite letras:");
for(i=0;i<4;i++)
scanf("%c",&comando[i]);
for(i=0;i<4;i++)
printf("%c",comando[i]);
if(strcmp(comando,"elm ")==0)
printf("\nyes");
return 0;
}

Suponha que a entrada tenha sido:

'elm ' (elm seguido de um 'espaço')

Eu quero agora usar a função strcmp para verificar se minha entrada é igual à condição:

if(strcmp(comando,"elm ")==0)

Porém como fazer pra ele identificar o 'espaço' na condição e dar como saída 'yes'?:

if(strcmp(comando,"elm ")==0)
printf("\nyes");

Desde já, Agradeço!

Postado

Na verdade o que vai causar erro no seu programa é a função scanf. Isso tem a ver com o "enter" que o usuário pressiona depois de cada caractere. Isso gera lixo no buffer ai a função coloca o calor '/n' no próximo caractere. A função de comparação entre as strings esta sendo utilizada corretamente.

Postado

Nesse caso, como eu poderia contornar esse problema do enter? Ouvi falar sobre usar algo como getchar() porém nao sei bem como usar.. é so coloca-lo apos o scanf? Sabes dizer?

Postado

A biblioteca string.h contém uma função chamada gets(char *str) que lẽ uma string do teclado e armazena em str. Veja seu programa refeito.


#include <stdio.h>
#include <string.h>

int main()
{
char comando[5];//são 5 caracteres pois em uma string existe um caractere a mais
printf("Digite letras:");
gets(comando);
printf("%s", comando);
if(strcmp(comando,"elm ")==0)
printf("\nyes");
return 0;
}

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!