Olá Galera. Eu já tenho conhecimento em programação, mas iniciei em C há alguns dias apenas.
Eu estou praticando Operadores Relacionais e Operadores Lógicos.
Eu tenho um char nome[5];
e o valor que é atribuido a ele não bate com a String que eu comparo. Gostaria de ajuda para resolver isso.
Estou usando a string "Teste"
como exemplo, eis o código-fonte:
#include <stdio.h>
int main(void) {
char nome[5];
int idade;
printf("Escreva o seu nome: "); //Escreva Teste
scanf("%s", &nome);
printf("Escreva a sua idade: ");
scanf("%d", &idade);
if(idade > 0 && nome == "Teste") {
printf("Resultado: Encontrado");
} else {
printf("Resultado: Nao encontrado");
}
return 0;
}
- C != C++
- Se uma coisa compila em C, não quer dizer que vai funcionar
- Você precisa ler sua apostila. O método para comparar 2 strings em C se chama “strcmp”.
Exemplo:
if (strcmp (nome, "Teste") == 0) ...
- Sempre que você criar uma string em C, você precisa definir um array de char com mais espaço que você pensa em usar, porque pelo menos o terminador da string (\0) é necessário guardar. No seu caso, em vez de ser econômico, declare com char nome [128].
Cara, segue o site abaixo que pode solucionar boa parte das tuas dúvidas em C…
http://www.cplusplus.com/reference/clibrary/
Sobre comparar duas strings em C…
http://www.cplusplus.com/reference/cstring/strcmp/
Só a título de curiosidade, quando você faz nome == “Teste” você está comparando o valor de endereço deles na memória.
[quote=entanglement]1) C != C++
2) Se uma coisa compila em C, não quer dizer que vai funcionar
3) Você precisa ler sua apostila. O método para comparar 2 strings em C se chama “strcmp”.
Exemplo:
if (strcmp (nome, "Teste") == 0) ...
- Sempre que você criar uma string em C, você precisa definir um array de char com mais espaço que você pensa em usar, porque pelo menos o terminador da string (\0) é necessário guardar. No seu caso, em vez de ser econômico, declare com char nome [128].
[/quote]
Obrigado já corrigi o que estava errado e agora está funcionando. Eu não sabia da existência do método. Na verdade esse exemplo não está no livro que eu estou lendo.
Só complementando, para comparar ignorando letras maiúsculas/minúsculas, basta usar o stricmp.
Valeu