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>
int main() {
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;
}

Exercícios relacionados