Comparação entre strings [RESOLVIDO]

1. Comparação entre strings [RESOLVIDO]

José Alan Torres Pires
alanp1

(usa Outra)

Enviado em 06/06/2020 - 16:52h

Oi pessoal, quando tento comparar duas strings aparece o seguinte erro:
Pergunta: O problema é no código ou é preciso baixar a biblioteca stdlib.h?

atv6.c: In function ‘main’:
atv6.c:215:7: warning: implicit declaration of function ‘strcmp’ [-Wimplicit-function-declaration]
if((strcmp(login, log)==0){
^~~~~~
atv6.c:215:29: error: expected ‘)’ before ‘{’ token
if((strcmp(login, log)==0){
^
atv6.c:222:1: error: expected expression before ‘}’ token
}
^





Segue abaixo o código:
#include <stdio.h>
#include <stdlib.h>

int main(){
char log[20]="admin";
int key;
char login[20]="admin";



key=strcmp(login, log);


printf("%d",key);
}




  


2. Re: Comparação entre strings

Stanislaus K
StanislausK

(usa FreeBSD)

Enviado em 06/06/2020 - 18:39h

Ola,

"Segue abaixo o código"

eu testei o seu código no Code::Blocks e não teve erro! Apareceu o valor 0.


3. Re: Comparação entre strings [RESOLVIDO]

José Alan Torres Pires
alanp1

(usa Outra)

Enviado em 06/06/2020 - 20:24h

Então o problema é no compilador, acredito que ele não encontra a biblioteca.


4. Re: Comparação entre strings [RESOLVIDO]

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 06/06/2020 - 21:02h

strcmp precisa da bilioteca string.h

No primeiro código, no if, você abriu 3 parênteses e fechou apenas 2.


5. Re: Comparação entre strings [RESOLVIDO]

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 06/06/2020 - 21:05h

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

int main() {
char palavra1[] = "fulano de tal";
char palavra2[] = "fulano de tal";

if(strcmp(palavra1, palavra2) == 0) {
printf("As palavras sao iguais. \n");
} else {
printf("As palavras sao diferentes. \n");
}

return 0;
}



6. Re: Comparação entre strings

Heitor Costa
Heitor.rj

(usa Slackware)

Enviado em 07/06/2020 - 02:34h

alanp1 escreveu:
Oi pessoal, quando tento comparar duas strings aparece o seguinte erro:
Pergunta: O problema é no código ou é preciso baixar a biblioteca stdlib.h?
Não precisa dela!

Voce esqueçeu de declarar string.h conforme já havia mencionado adrisiq
Simplifiquei seu código!
#include <stdio.h>
#include <string.h> // Voce esqueceu de declarar

int main(void) {
int key = strcmp("admin", "admin"); // Declarei tudo em 1 só linha, preguiça de escrever!
printf("%d\n", key); // Pulei uma Linha!
}

Compile com todos os avisos e verificação de erros, ou NÃO kkkkk:
gcc Test.c -o Test -O3 -Wall -pedantic -pedantic-errors -Werror