Ir ao conteúdo

if (palavra == "sim") -- Linguagem C


Krohn

Posts recomendados

Postado

Fala galera, beleza?

Minha primeira postagem aqui..bem vamos lá, no algoritmo abaixo apenas aparece "nao deu" -_- o que estou fazendo de errado aqui?

desde já, obrigado!

#include <stdio.h>

#include <stdlib.h>

int main(){

char resp[20]= "sim";

if (resp == "sim")

printf("sim");

else

printf("nao deu");

system ("pause");

system ("cls");

}

Postado

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

int main(){

char resp[]= "sim";

if (strcmp(resp,"sim") == 0)
printf("sim");
else
printf("nao deu");

system ("pause");
system ("cls");
}

Postado

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

int main(){

char resp[]= "sim";

if (strcmp(resp,"sim") == 0)
printf("sim");
else
printf("nao deu");

system ("pause");
system ("cls");
}

certinho, obrigadão!

Postado
certinho, obrigadão!

Krohn,

desculpa mas vou ser um pouco mais explicativo.

O nosso amigo ali em cima te deu a resposta, ok...mas procure perguntar o porque mesmo quando te dão a resposta na caruda, só assim você vai evoluir.

A compração que você queria fazer era entre strings, portanto você nao pode utilizar o if diretamente como no caso de um Inteiro como você fez,

As funções para strings seriam, strcmp, strcasecmp, strncmp e strncasecmp.

A strcmp compara uma string com outra string, a sua entrada é do tipo

strcmp(primeirastring,segundastring), ela te retorna 0 se ambas forem iguais, 1 se a primeira string for "maior" que a segunda e -1 se a primeira for "menor" que a segunda....

a strcasecmp tem mesma entrada, porém ignora Letra Maiuscula ou Minuscula,

a strNcmp ou Ncasecmp possuem entrada do tipo

(primeirastr,segundastr,numerodecaracteres)

ela compara somente os N caracteres que você digitou, e devolve 0,1,ou menos 1 seguindo o mesmo critério.

Se N>strlen(1°str) ou N>(strlen(2°str)) a função irá ler somente até o tamanho da menor string e parar.

Postado

Complementando a resposta acima, por que não é possível utilizar o if diretamente, isto é, sem as funções de string F5Rua4D.gif ?

O motivo está neste trecho do livro The C Programming Language, 2nd Edition, obra de referência no estudo da linguagem C:

C provides no operation to deal directly with composite objects such as character strings, sets, lists, or arrays. There are no operations that manipulate an entire array or string, although structures may be copied as a unit.

O autor referiu-se ao C puro, sem a biblioteca padrão do C, incluída tempos depois da criação da linguagem propriamente dita.

Espero ter ajudado GbhmuXl.gif.

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!