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

Como faço para percorrer uma string?


Yasmin Líbano

Pergunta

No meu caso o meu programa é para ler um arquivo com todas as palavras da lingua portuguesa, e escrever a maior, descartando todas as que tiverem as letras g,q,w,k,z,x,m e v. Ainda não manjo muito de arquivos então não sei se eu estou fazendo do jeito mais eficiente. To com dificuldade na parte de eliminar as palavras com as tais letras. Toda ajuda é bem vinda e segue o código:

btw: no arquivo as palavras estão separadas por quebra de linhas, por isso o "getc(arq)!=\n", mas não textei para checar se realmente funcionava então ¯\_(ツ)_/¯

#include <stdio.h>
#include <string.h>
FILE *arq;
char plv[],plv_maior[];
main(){
	if(arq=fopen("dicio.txt","r")!=NULL){
		fseek=(arq,0,SEEK_SET);
		while(getc(arq)!=EOF){
		    while(getc(arq)!="\n"){
			    strcat(plv,getc(arq));	
		    }
		    if(strcmp(plv_maior,plv)<0)
		        plv_maior=plv;
		    plv=\0;
	    }
	}

 

Editado por Yasmin Líbano
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

É bem util acostumar a chamar perror depois de abrir um programa. Seria muito bom você acostumar abrir um arquivo da seguinte forma pois você comprova possiveis erros de abertura:
 

#include<stdio.h>

int main(){
    FILE* arq;
    char* nomeArquivo = "teste.txt";
    
    //Comprovando 
    if( (arq=fopen( nomeArquivo,"r"))==NULL){//Si fopen retornar nullo...
        //Se o arquivo NÃO caimos aqui
        perror("Erro"); //Perror vai informar o por que. Pode ser porque o arquivo não existe, ou pode que você não tenha permisão, ou haja um erro... realmente podem ser muitos erros, por isso é importante chamar o perror para saber. 
        puts("Aperte uma tecla para sair.");
        getchar();
        return 1; // Termina com o código do erro 1 e sai do programa.
    }
    
    /*
        Se o arquivo abriu caimos aqui, é dizer, si o fopen retornou qualquer outra coisa que não 
        seja null então caimos aqui, e podemos seguir. Recorde que precisa fechar o arquivo com fclose 
        antes de sair ou en outros casos.
    */
    
 
    
    return 0;
}

 

Agora bem...

15 horas atrás, Yasmin Líbano disse:

btw: no arquivo as palavras estão separadas por quebra de linhas

isso quer dizer uma palavra por linha certo? Se for assim bastaria você usar fscanf para ler cada uma das palavras:
 

#include<stdio.h>

int main(){
    FILE* arq;
    char* nomeArquivo = "teste.txt";
    char palavra[100];
    
    //Comprovando 
    if( (arq=fopen( nomeArquivo,"r"))==NULL){//Si fopen retornar nullo...
        //Se o arquivo NÃO caimos aqui
        perror("Erro"); //Perror vai informar o por que. Pode ser porque o arquivo não existe, ou pode que você não tenha permisão, ou haja um erro... realmente podem ser muitos erros, por isso é importante chamar o perror para saber. 
        puts("Aperte uma tecla para sair.");
        getchar();
        return 1; // Termina com o código do erro 1 e sai do programa.
    }
    
    /*
        Se o arquivo abriu caimos aqui, é dizer, si o fopen retornou qualquer outra coisa que não 
        seja null então caimos aqui, e podemos seguir. Recorde que precisa fechar o arquivo com fclose 
        antes de sair ou en outros casos.
    */
    
    //Repete até o fim do arquivo
    while( fscanf(arq, "%s", palavra) != EOF ){// lê uma palavra
        printf("%s\n", palavra);        // imprime uma palavra
    }
    
    
    return 0;
}

 

Então agora quer dizer que você lê uma linha e guarda essa linha no vetor palavra, agora seria só tratar essa palavra como quiser.

Editado por vangodp
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...