Na aula de ontem, resolvi um exercicio que demorou 1 hora a ser resolvido, mas depois vi que é tão facil.
O exercico é o seguinte:
Escreva um programa que conta, num ficheiro, o número de ocorrências de um determinado carácter. O ficheiro e o carácter são especificados pelo utilizador. Abra o ficheiro em modo de texto para leitura. Utilize a função getc().
Exemplo de saída do programa:
Caminho e nome do ficheiro: c:\autoexec.bat
Caracter: \
Resultado: 6 ocorrências do caracter \
Grave o programa com o nome m7_f1_8.c na sua pasta.
Resolução:
#include <stdio.h>
main()
{
FILE *fp;
char palavra;
char nome_fp[50];
char caracter[0];
int i;
int soma=0;
printf("Introduza o nome do ficheiro:\n");
scanf("%s",nome_fp);
if((fp=fopen(nome_fp, "r"))==NULL)
printf("Ocorreu um erro ao abrir o ficheiro\n");
else
printf("O ficheiro foi aberto com sucesso\n");
printf("Caracter: ");
scanf("%s", caracter);
while((palavra = fgetc(fp))!=EOF){
if(palavra==caracter[0])
soma=soma+1;
}
printf("\nresultado: %d correspondencias do caracter %s\n\n", soma, caracter);
fclose(fp);
system("pause");
return 0;
}
A unica diferença entre este exercício e o exercicio de criar um ficheiro foi :
printf("Caracter: ");
scanf("%s", caracter); // serve para pedir um caracter, para depois ver o numero de vezes que ocorre
while((palavra = fgetc(fp))!=EOF){ // serve para verificar quando terminar as palavras no FILE
if(palavra==caracter[0]) // verificar caracter a caracter se tem igual
soma=soma+1; //contar as ocorrencias
}
printf("\nresultado: %d correspondencias do caracter %s\n\n", soma, caracter);
Sem comentários:
Enviar um comentário