Ir ao conteúdo
  • Cadastre-se
vinicius13

C++ Problema em String C++

Posts recomendados

	printf("Certo agora insira o nome do seu oponente\n");
	    scanf("%c",&oponente);
	if (oponente == 'caio')
		printf("Certo seu oponente é o: ",oponente);

O que tá de errado aqui ele não imprime o printf depois do if

Compartilhar este post


Link para o post
Compartilhar em outros sites

a parte (oponente == 'caio') esta errada.

o printf também estar errado.

o scanf também.

e usa biblioteca string.h com a função strcmp(pois comparação de string em C nao funciona assim), no caso assim:

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

int main(){
	char oponente[101];	
	printf("Certo agora insira o nome do seu oponente\n");
	
	scanf("%s",oponente);
	
	if (strcmp(oponente,"caio") == 0){
	
	     printf("Certo seu oponente e o: %s",oponente);
	
	}
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
43 minutos atrás, wesquel disse:

canf("%s",oponente);

if (strcmp(oponente,'caio') == 0){

por que %s e não c? 

 

e por que preciso do strcmp? e por que ele tem que ser == 0

adicionado 4 minutos depois

Edit: não funcionou deu o seguinte erro: Erro na coversão de 'int' para 'const char*'
Erro na inicialização do argumento 2 da função 'int strcmp(const char*, const char*)'

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vinicius13 o strcmp e porque a linguagem c é de mais baixo nivel então se voce faz, (oponente == "caio") voce nao esta comparando eles e sim seus endereços de memoria, e o zero 0 como é uma função ela retorna 0 se estiver correto e se não estive correto ela retorna -1.

 

o %s no scanf e porque se voce colocar somente o %c ele so vai ler 1 caractere  enquanto no %s ela ler a string toda. quase a mesma coisa no do printf.(explicando vagamente)

adicionado 5 minutos depois
17 minutos atrás, vinicius13 disse:

por que %s e não c? 

 

e por que preciso do strcmp? e por que ele tem que ser == 0

adicionado 4 minutos depois

Edit: não funcionou deu o seguinte erro: Erro na coversão de 'int' para 'const char*'
Erro na inicialização do argumento 2 da função 'int strcmp(const char*, const char*)'

manda como ta o teu codigo mas provavelmente voce esta colocando caio em char no caso assim 'caio' em string e assim "caio"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui, era só colocar " ao invés de '

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 horas atrás, vinicius13 disse:

por que %s e não c? 

c é para ler uma só letra e guardar em um char, a s é para ler um conjunto de letras e guardar em um vetor, que também é um conjunto de chars.
 

20 horas atrás, vinicius13 disse:

Consegui, era só colocar " ao invés de '

Na comparação? Não funcionaria.
 

20 horas atrás, vinicius13 disse:

e por que preciso do strcmp?

Se você vier de outras linguagens como c#, java, python, php, c++, etc, talvez você estará acostumado a fazer comparações como esta -> if(oponente == "caio"), mas isso em C não é permitido, o programa terá comportamentos não desejados por isso deve usar a função "string compair"(strcmp). E o fato de fazer strcmp(...)==0 é que essa função retorna 0 em caso das 2 strings serem idênticas.
 

21 horas atrás, vinicius13 disse:

Edit: não funcionou deu o seguinte erro: Erro na coversão de 'int' para 'const char*'
Erro na inicialização do argumento 2 da função 'int strcmp(const char*, const char*)'

você incluiu a biblioteca string.h? Se não ponha ao inicio do arquivo #include<string.h>. Essa biblioteca tem uma serie de funções que ajudam na manipulação de strings.

Se rodar o código de wesquel tem que funcionar perfeitamente.

Se seu programa não funcionar poste ele completo, comentando as partes que tiver mais problemas.

 

 

 

 

 

 

61v6BKiNOmL._SY355_.jpg

adicionado 2 minutos depois

Talvez n compreendamos sua lógica, e o que você quer realizar, e por isso fica difícil lhe ajudar.. se quiser mandar o código completo certamente será ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

ebook grátis "Aprenda a ler resistores e capacitores", de Gabriel Torres

GRÁTIS! BAIXE AGORA MESMO!