Analisador de spam. O spam (ou e-mail não solicitado) custa às organizações dos Estados Unidos bilhões de dólares por ano em software para prevenção de spam, equipamento, recursos de rede, largura de banda e produtividade perdida. Pesquise on-line algumas das mensagens
e palavras de spam que são comumente enviadas por e--mail, e verifique sua própria pasta de caixa de e-mail. Crie uma lista com trinta palavras e frases normalmente encontradas nas mensagens de spam. Escreva um programa em que o usuário forneça via teclado uma mensagem de e-mail. Leia a mensagem em um array de caracteres grande e garanta que o programa não tente inserir caracteres após o final do array. Depois, filtre a mensagem para cada uma das trinta palavras-chave ou frases. Para cada ocorrência de uma delas, some um ponto no ‘nível de spam’ da mensagem. Em seguida, avalie a probabilidade de que a mensagem seja um spam com base no número de pontos que ela recebeu.
Passo 1
Passo 1
1 de 10
Vamos escrever um programa que faça o seguinte:
Solicita que o usuário insira uma mensagem de e-mail.
Verifica a mensagem fornecida e determina a pontuação de spam com base na ocorrência de cada palavra-chave de spam na mensagem.
Exibe a probabilidade de a mensagem ser spam de acordo com a pontuação total de spam recebida.
Observe que podemos avaliar a probabilidade de a mensagem ser spam usando a fórmula
Onde
spamScore refere-se ao total de pontos coletados para cada ocorrência de cada palavra-chave de spam na mensagem.
spamKeywords refere-se ao número total de palavras-chave de spam na lista.
Passo 2
Para escrever o programa, primeiro declararemos os seguintes arquivos de cabeçalho.
#include
#include
Vamos então declarar a função main.
int main(){
}
Dentro desta função, vamos definir os requisitos do programa.
Agora, declare as seguintes variáveis.
char msg[5][150]; // Para armazenar a mensagem de e-mail
int, j; // Para os contadores de loop
// Para representar a lista de 30 palavras-chave de spam
char *spamKeywords[] = {
"renda adicional", "grátis", "dobre o seu", "você ganhou",
"oportunidade", "comprar", "ofertas", "renda extra", "ganhar dinheiro",
"clique aqui", "melhor preço", "dinheiro de volta", "cadastro", "reembolso total",
"ganhos potenciais", "grande", "experimente agora", "desconto", "dinheiro rápido",
"economize até", "clique no link", "acessível", "espere ganhar", "pedir agora",
"seja seu próprio patrão", "ofertas de cartão de crédito", "por que pagar mais",
"negócio incrível", "parabéns", "condições fáceis"
};
char *spamPtr; // Para apontar para uma palavra-chave de spam na mensagem
float spamScore; // Para armazenar a pontuação total de spam
float rate; // Para armazenar a taxa de spam
Passo 3
Em seguida, solicitaremos que o usuário insira a mensagem de e-mail e leia essa mensagem.
printf("Digite sua mensagem de e-mail:\n");
for(i = 0; i
fgets(msg[i], 150, stdin);
}
Em seguida, determinaremos a pontuação de spam fazendo o seguinte.
// Iterar dentro das palavras-chave de spam
for(i = 0; i
// Verifica a mensagem para determinar a pontuação de spam
for(j = 0; j
// Convertendo a mensagem primeiro em letras minúsculas e
// encontrando cada ocorrência de cada palavra-chave de spam na mensagem
strlwr(&msg[j]);
spamPtr = strstr(msg[j], spamKeywords[i]);
// Se a primeira ocorrência da palavra-chave de spam atual
// for encontrado, adicionamos um ponto à pontuação de spam e movemos
// para a próxima palavra-chave de spam.
if(spamPtr != NULL){
spamScore++;
break;
}
}
}
Em seguida, determinaremos a taxa para a probabilidade de a mensagem ser spam.
taxa = (spamScore / 30) * 100;
Por fim, exibiremos a pontuação de spam e a taxa. Em seguida, indicaremos que o programa terminou com sucesso, colocando o valor de retorno da função principal.
printf("\nSpam Score: %.f\n", spamScore);
printf("A probabilidade do e-mail ser spam é%.2f%% \n", rate);
return 0;
Resposta
Ver desenvolvimento