Arthur Alencar Postado Agosto 10, 2010 Denunciar Share Postado Agosto 10, 2010 (editado) ________________________#include <stdio.h>int main (){ char *nome; printf("Digite seu primeiro nome: "); gets(nome); if(nome=='jack') { printf ("\n\nYES\n\n"); } else { printf("\n\nNO\n\n"); } return(0);}_________________________qual o erro acima?já muuuuito tempo que não programo em C e eu estava tentando fazer um programinha simples, mas estou fazendo algo erradoeu sei que se eu fizer da maneira abaixo da certo, mas quero entender porque da maneira acima esta dando errado, alguém me da esse help ai rapidinho?valeu!#include <stdio.h>int main (){ char *nome; printf("Digite seu primeiro nome: "); gets(nome); if((nome[0]=='j') && (nome[1]=='a') && (nome[2]=='c') && (nome[3]=='k') && (nome[4]=='')) { printf ("\n\nYES\n\n"); } else { printf("\n\nNO\n\n") } return(0);}n sei porque o barra zero n ta aparecendo ali no nome[4], loleu edito e n funciona, enfimo nome[4] é igual barra zero (fim da string) Editado Agosto 10, 2010 por Arthur Alencar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Jam Postado Agosto 10, 2010 Denunciar Share Postado Agosto 10, 2010 porque você esta declarando um ponteiro, um ponteiro armazena uma posição da memoria e não a variavel em si. * == ponteiro.Para armazenar uma cadeia de caracteres, deve-se utilizar ponteiro e alocar memoria.char * nome = (char) (malloc sizeof(char) * 10); // 10 posicoesai sim você pode receberou então alocar direto sem ser por ponteirochar nome[10];2. não da para comparar strings com o operador ==, ou voce faz um laco e compara caractere a caractere, ou usa funcoes prontas como a strcmp da string.hno mais é so, falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Arthur Alencar
________________________
#include <stdio.h>
int main ()
{
char *nome;
printf("Digite seu primeiro nome: ");
gets(nome);
if(nome=='jack')
{
printf ("\n\nYES\n\n");
}
else
{
printf("\n\nNO\n\n");
}
return(0);
}
_________________________
qual o erro acima?
já muuuuito tempo que não programo em C e eu estava tentando fazer um programinha simples, mas estou fazendo algo errado
eu sei que se eu fizer da maneira abaixo da certo, mas quero entender porque da maneira acima esta dando errado, alguém me da esse help ai rapidinho?
valeu!
#include <stdio.h>
int main ()
{
char *nome;
printf("Digite seu primeiro nome: ");
gets(nome);
if((nome[0]=='j') && (nome[1]=='a') && (nome[2]=='c') && (nome[3]=='k') && (nome[4]==''))
{
printf ("\n\nYES\n\n");
}
else
{
printf("\n\nNO\n\n")
}
return(0);
}
n sei porque o barra zero n ta aparecendo ali no nome[4], lol
eu edito e n funciona, enfim
o nome[4] é igual barra zero (fim da string)
Editado por Arthur AlencarLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.