Julie Postado Janeiro 15, 2007 Denunciar Share Postado Janeiro 15, 2007 Eu sou novata em C e gostaria de saber como eu faço para delimitar o que quero ler?Por exemplo:cause="hardwareProblem"creatTime="21:21"Eu quero que ele leia desde o sinal de igual até a segunda aspas de cause.Como eu faço isso?Mas não pode ser uma coisa específica para esse caso...porque eu posso ter derepente:cause="problema que não podem ser identificados"OO que quero dizer é que ele não posso desenvolver algo só para este caso...O tamanho de cause pode variar...POr favor me ajudem....Obrigada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 15, 2007 Denunciar Share Postado Janeiro 15, 2007 Você pode percorrer uma string caracter a caracter e identificar onde começam e onde terminam as aspas. Exemplo de como percorrer a string: char buffer[30]; scanf("%s", &buffer); for (int i=0; i<strlen(buffer); i++) printf("%c\n", buffer[i]);Certo? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Julie Postado Janeiro 16, 2007 Autor Denunciar Share Postado Janeiro 16, 2007 Bom...aqui vai meu código....Preciso corrigi-lo porque ele ainda não faz o que quero....Me ajudem, please!!!! :( #include<stdio.h> #include<string.h> #include<stdlib.h> struct Computer_Descriptor { char facility_ID[200], key[200], cause[200], create_time[200]; }; void tag_computer(char *buf, struct Computer_Descriptor *xml_Computer) { strcpy(xml_computer->computer, buf); } int main() { struct Computer_Descriptor xml; char variavel[5000], test[3000], comp[100]; char *point; int i=0, j=0, result=0; FILE *fp; fp = fopen("caminho do arquivo","r+"); if(fp == NULL) { printf("Erro na abertura do arquivo\n"); exit(1); } else { fread(variavel, sizeof(variavel), 1, fp); point = strstr(variavel, "facilityID"); point = strtok (variavel, "="); while (point != NULL) { printf ("%s\n", point); point = strtok (NULL, "="); } return 0; } }O que eu preciso é que ele printe na tela só o resultado depois do sinal de igual na mesma linha...(concatenados).Sem a palavra anterior ao sinal de igual aparecer.obrigada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Janeiro 19, 2007 Denunciar Share Postado Janeiro 19, 2007 Julie, este programa realmente precisa ser em C? Em algumas linguages, dá pra fazer isso facilmente, utilizando expressões regulares. Em Ruby, por exemplo, é uma linha:puts gets.scan(/cause(=\".*\")/) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Julie
Eu sou novata em C e gostaria de saber como eu faço para delimitar o que quero ler?
Por exemplo:
cause="hardwareProblem"
creatTime="21:21"
Eu quero que ele leia desde o sinal de igual até a segunda aspas de cause.
Como eu faço isso?
Mas não pode ser uma coisa específica para esse caso...porque eu posso ter derepente:
cause="problema que não podem ser identificados"
O
O que quero dizer é que ele não posso desenvolver algo só para este caso...
O tamanho de cause pode variar...
POr favor me ajudem....
Obrigada
Link para o comentário
Compartilhar em outros sites
3 respostass 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.