Ir para conteúdo
Fórum Script Brasil

Ark

Membros
  • Total de itens

    31
  • Registro em

  • Última visita

Tudo que Ark postou

  1. #include <stdio.h> #include <string.h> void procura(char *str, FILE *fp){ int pos_atual, tam = strlen(str)+1; char ch, word[tam]; while (!feof(fp)){ pos_atual = SEEK_CUR; if(*str==(ch=getc(fp))){ fseek(fp, -1, pos_atual); fgets(word, tam, fp); if(!strcmp(word, str)){ printf("Palavra encontrada: %s", word); return; } pos_atual -= tam-1;; } } printf("A palavra digitada não foi encontrada."); } main(){ FILE *fp; char word[15], arq[15]; printf("digite o nome do arquivo que você deseja ler: "); scanf("%s", arq); fp = fopen(arq, "r+"); printf("Digite a palavra que queira buscar no arquivo %s: ", arq); scanf("%s", word); procura(word, fp); getch(); } A função aí em cima procura() vai procurar pela string str no arquivo fp, onde tam é o tamanho da string. A função vai ler caracter por caracter até achar um que coincida com o primeiro caracter da string, depois faz-se a comparação com strcmp() que se retornar zero, ou seja, se as strings forem iguais, vai escrever que achou e retorna pra main. Caso as strings não sejam iguais, pos_atual vai ser decrementada com tam-1 passando assim pro caracter sucessor, pra fazer denovo a comparação com o primeiro caracter da string até encontrar e assim ver se achou denovo, e tal. Espero ter ajudado. Abraço.
  2. Ark

    Matriz int x Matriz char

    Desculpa cara eu acho que eu não soube me expressar direito, então, é...vou decompor a minha pergunta em 2: 1. Não tem como mesmo eu retornar ponteiro pra var local de uma função pra main? 2. O C faz alguma distinção especial entre matriz de char(strings) e matrizes de outros tipos, como int? Abraço.
  3. Galera, desculpe a ignorancia, mas porque eu não consigo retornar um vetor de inteiros de uma função, quando eu posso retornar vetor de char(string)? Obrigado pela atenção. Abraço a todos.
  4. int x, c, aux; for(c=1; c<=MAX-1; c++) for(x=0; x<MAX-1; x++) if(matriz[x+1] > matriz[x]){ aux=matriz[x+1]; matriz[x+1]=matriz[x]; matriz[x]=aux; } o for mais interno vai sair comparando um elemento do vetor com seu sucessor até chegar no enézimo termo do vetor. o for mais externo vai fazer isso MAX-1 vezes, onde MAX é a quantidade de elementos do vetor a ser ordenado. abraço. EDIT: desculpe ter feito o post acima, não foi minha intenção.
  5. Ark

    Sobrescrever parte de arquivo

    Diogoo, porque você não tenta criar outro arquivo e copiar as partes importantes pra ele e depois apagar o arquivo anterior? Acho que seria a maneira mais simples de se fazer isso... Abraço.
  6. Ark

    Matriz de strings

    string com 15 caracteres: char string1[15]; 15 strings com 15 caracteres cada. char string2[15][15]; pra ler as 15 strings: int x; for(x=0; x<15; x++) scanf("%s", string2[x]); Abraço.
×
×
  • Criar Novo...