Faça um programa onde o usuário digita 3 informações a respeito de uma pessoa: Nome, endereço e telefone. Concatene essas três informações em uma única string e faça uma contagem de quantas letras do alfabeto estão presentes nesta string (considerando as redundâncias) e também de dígitos numéricos. Os espaços e os caracteres de pontuação devem ser ignorados(as funções de contagem já fazem isso).
Dica: use as funções int isalpha(char cr) e int isdigit(char cr).
Exemplo:
Nome: Ana Claudia
Endereço: Rui Barbosa, 234
Tel: 234-0912
Resultado:
Quantidade de letras pertencentes ao alfabeto =20.
Quantidade de dígitos numéricos =10

Passo 1

O enunciado pede um programa em C em que o usuário digita três strings (nome, endereço e telefone). A gente vai “colar” essas três numa sequência só e contar:
  1. Quantas letras do alfabeto aparecem (função isalpha)
  2. Quantos dígitos numéricos aparecem (função isdigit)
    Espaços e pontuação a gente ignora naturalmente, porque nem isalpha nem isdigit retornam verdadeiro para eles.
    Conteúdo envolvido:
    • Leitura de strings em C (fgets)
    • Manipulação básica de arrays de char
    • Loop para percorrer cada caractere
    • Uso de <ctype.h> (isalpha e isdigit)
    Tudo que precisamos é de três buffers char[], dois contadores e um for para vasculhar cada string.

Passo 2

Ler as três informações. Como o cara pode digitar espaços (ex: “Ana Claudia”), a gente usa fgets. Exemplo pra ler o nome:
char nome[100];
printf("Nome: ");
fgets(nome, 100, stdin);
// opcionalmente remover o '\n' que o fgets captura
Faz o mesmo para endereco e telefone.
Dica de amigo: depois de cada fgets, dá pra checar se o último caractere é '\n' e substituir por '\0' para evitar lixo na string.

Passo 3

Agora vamos contar. Declara dois contadores:
int conta_letras = 0;
int conta_digitos = 0;
E monta um loop para cada string, tipo:
for (int i = 0; nome[i] != '\0'; i++) {
    if (isalpha(nome[i])) conta_letras++;
    else if (isdigit(nome[i])) conta_digitos++;
}
Repete esse mesmo for para endereco e para telefone. A cada caractere, isalpha(c) retorna não zero se for letra (A–Z ou a–z) e isdigit(c) retorna não zero se for dígito (0–9). Se nem uma nem outra, a gente ignora.

Passo 4

Depois de rodar os três loops, conta_letras e conta_digitos têm o total desejado. Agora é só imprimir:
printf("Quantidade de letras pertencentes ao alfabeto = %d\n", conta_letras);
printf("Quantidade de dígitos numéricos = %d\n", conta_digitos);

Resposta

Usando o exemplo do enunciado:
Nome: Ana Claudia
Endereço: Rui Barbosa, 234
Tel: 234-0912
A saída fica:
Quantidade de letras pertencentes ao alfabeto = 20
Quantidade de dígitos numéricos = 10

Exercícios relacionados