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

Comparação CHAR com CHAR!


Tiago Chan

Pergunta

Fala pessoal...

Estou começando a aprender C e estou fazendo um programa que recebe uma variavel char. Como delimitador eu estou utilizando o "/" e eu gostaria de dividir esse char em novos char.

Por exemplo:

recebo essa string: nome/idade/sexo/

e gostaria de dividir em 3 strings.

string1 = nome

string2 = idade

string3 = sexo

Nas minhas pesquisas encontrei os comandos STRCHR o STRCMP mas mesmo assim não consegui!

Vou postar o codigo que tentei fazer... mas está dando erro. Só falta conseguir comparar

o delimitador com a string! alguém poderia me ajudar?

Obrigado pessoal!

Abraços

Tiago

**********************************codigo*****************************

//VARIAVEL GLOBAL

char *lala, *lele, *lolo;

void carregaobra(void){

int cont1, cont2, cont3, cont4, auxilia, result;

char string[50], CHR[3];

char *prt, *prt2, c = '/';

lele = '/';

barra[0] = lele[0];

cont1 = 0;

cont2 = 0;

cont3 = 0;

cont4 = 0;

///////////LER ARQUIVO////////////////

printCom(3,"OPR OBRA.TXT");

ToCom(3,13);

printCom(3,"RD OBRA.TXT");

ToCom(3,13);

ReadComn(3,lala,25); //JOGA NA VARIAVEL LALA A STRING DO

//ARQUIVO TXT

printCom(3,"CLF OBRA.TXT");

ToCom(3,13);

/*////////////1ºMODO DE VERIFICACAO//////////////////////////

while (cont1 <= 25){

CHR[0] = lala[cont1];

if (CHR != '/'){

obra[cont1] = lala[cont1];

}

cont1++;

}

//////////////////////////////////////*/

/*//////////2º MODO USANDO STRCMP////////////////////////////

while (cont1 <= 25){

CHR[0] = lala[cont1];

result = strcmp(CHR, barra);

if (CHR[cont1] != barra){

obra[cont1] = lala[cont1];

}

cont1++;

}

//////////////////////////////////////*/

/*////////////3º MODO USANDO STRCHR//////////////////////////

strcpy(string,lala);

prt = strchr(string,c);

prt2 = prt - string;

auxilia = atoi(prt2);

if(prt){

while (cont1 <= auxilia){

obra[cont1] = string[cont1];

cont1++;

}

}

//////////////////////////////////////*/

}

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

humm... então... é que este sistema que estou tentando desenvolver é pra um módulo de aquisição de dados. É uma biblioteca específica pra ele. Assim como o printCom -> envia dados para uma porta COM RS-232 tem também o ToCom etc.

Isso está funcionando ok!

O que não está funcionando é a comparação de CHAR. Será que você poderia mostrar um exemplo de como fazer uma comparação de CHAR?

valeu!!

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Tiago Chan, se lhe entendi certo, a resposta para sua questão é a seguinte:

Para Comparar uma string se usa o comando strcmp() que esta na biblioteca string.h

a sintaxe é a seguinte strcmp(string1, string2)

sendo que o retorno dessa função será: se a string1 na ordem alfabética for maior que

string2 será igual a qualquer numero >0 caso contrario será igual a qualquer numero <0,

se forem iguais o retorno será 0.

Exemplos:

strcmp('a', 'a') o retorno é 0;

strcmp('a', 'b') o retorno é <0;

strcmp('b', 'a') o retorno é >0;

Espero que eu tenha lhe ajudado, qualquer duvida é só postar novamente, falou.

Link para o comentário
Compartilhar em outros sites

  • 0

mas a 'b' e 'a' não são strings e sim caracteres, string é uma cadeia de caracteres como você mesmo definiu corretamente, para comparar cadeias de "char", devemos sim utilizar a strcpm

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...