Ir para conteúdo
Fórum Script Brasil
  • 0

Strings


Manwë Súlimo

Pergunta

15 respostass a esta questão

Posts Recomendados

  • 0

Há um outro detalhe: o último caractere de uma string sempre é o caractere "\0". Exemplificando, considere a string "string" na declaração que segue:

char string[ 6 ];
Você não pode inicializá-la com "abcdef" pois o último caractere da string tem que ser "\0". O máximo que você pode fazer é "abcde" e assim o esquema ficaria:
char string[ 6 ] = { 'a', 'b', 'c', 'd', 'e', '\0' };

/* é equivalente a: */

char string[ 6 ] = "abcde";

Até mais! wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tentei fazer assim como vocês disseram:

char op[20];

mas no meu teste ele não deu certo, tipo eu pus

if op=="listar"

e ele não dava certo, como eu uso num if esse caso?????

a palavra tem que ter o tamanho do array?? porque eu não sei que palavra o usuario vai digitar, podem ser varias e de varios tamanhos... como eu faço isso??

Link para o comentário
Compartilhar em outros sites

  • 0

É eu estava fazendo um programa assim hoje laugh.gif

Ele não pode fazer a comparação entre strings com o "=="... Então tem que usar a strcmp(comparador de strings). O curioso, é que ela retorna 0 se forem iguais e 1 se forem diferentes. Porque eu pensei que fosse:

Se for igual, então strcmp retorna 1(true ahuahau), mas testando descobri que retorna 0..

Link para o comentário
Compartilhar em outros sites

  • 0

então isso aqui:

if (!strcmp(op,"listar"))

faz isso...;

else

faz aquilo...;

seria como

if (strcmp(op,"listar")==0)

faz isso...;

else

faz aquilo...;

é isso??

por que eu não to conseguindo usar.....

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, erro não está dando, mas não acontece o que eu quero que aconteça

eu to começando agora com o C (deu p/ perceber né?) bom, ai eu quero testar alguns comando, e fiz esse programinha aqui:

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


void main(void)
{

char op[20];

	scanf("%c",&op);

while (strcmp(op,"sair")!=0)
{


      if (!strcmp(op,"listar"))
          system("dir");
      else
          printf("comando inválido....\n");

    scanf("%c",&op);
}

system("exit");
}

deu p/ enteder o que eu quero fazer??

só testar alguns comandos do DOS em portugues...

só p/ testar mesmo... vocês sabem por não da certo??

acontece como se o teste ficasse sempre com falso, porque só escreve comando invalido e o pior, escreve várias vezes....

o que ta acontecendo??

Link para o comentário
Compartilhar em outros sites

  • 0

, mas nesse caso não é ==0 que é uma comparaçào igual?? o que é diferentede zero é diferente da string que eu quero não é???

Exatamente só que quando a comparação for igual é que retorna zero, no caso do seu código:

while (strcmp(op,"sair")!=0)

Tem o sinal de diferente de zero (!=), ou seja , só vai sair do loop quando a condição for igual a zero (strings iguais)

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...