Faça um programa que receba do usuário um arquivo texto e um caracter. Mostre na tela quantas vezes aquele caractere ocorre dentro do arquivo.
Passo 1
O exercício pede que a gente escreva um programa que receba do usuário o nome de um arquivo texto e um caractere de busca, e depois conte quantas vezes esse caractere aparece dentro do arquivo.
Passo 2
Primeiro, a gente vai ler do usuário a string com o nome do arquivo e o caractere alvo. Em seguida, a gente tenta abrir o arquivo em modo leitura usando fopen. Se fopen retornar NULL, exibimos uma mensagem de erro e encerramos o programa.
Passo 3
Com o arquivo aberto, usamos um loop while que faça fgetc até retornar EOF. Para cada caractere lido, comparamos com o caractere alvo; se for igual, incrementamos um contador.
Passo 4
Depois que chegamos ao fim do arquivo, fechamos ele com fclose e mostramos na tela o valor do contador — que é o número de ocorrências do caractere fornecido.
Resposta
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main() {
char nomeArquivo[100];
char alvo;
FILE *fp;
int count = 0;
int c; // usar int para comparar com EOF
char nomeArquivo[100];
char alvo;
FILE *fp;
int count = 0;
int c; // usar int para comparar com EOF
printf("Digite o nome do arquivo de texto: ");
scanf("%99s", nomeArquivo);
printf("Digite o caractere a ser contado: ");
scanf(" %c", &alvo);
fp = fopen(nomeArquivo, "r");
if (fp == NULL) {
fprintf(stderr, "Erro ao abrir o arquivo '%s'.\n", nomeArquivo);
return 1;
}
while ((c = fgetc(fp)) != EOF) {
if ((char)c == alvo) {
count++;
}
}
fclose(fp);
printf("O caractere '%c' ocorre %d vezes no arquivo.\n", alvo, count);
return 0;
}