#include <stdio.h>
#include <string.h>
#include <locale.h>
#include "email_processor.h"
int main() {
setlocale(LC_ALL, "ukr");
char email[100]; // Рядок для зберігання електронної пошти
printf("Введіть електронну пошту: ");
fgets(email, sizeof(email), stdin);
// Видаляємо символ нового рядка, який додається функцією fgets
email[strcspn(email, "\n")] = '\0';
int result = obfuscate_email(email);
if (result) {
printf("Оброблена електронна пошта: %s\n", email);
}
else {
printf("Електронна пошта не була оброблена (заміна не виконана).\n");
}
printf("Результат заміни: %d\n", result);
return 0;
}
/**
* @file email_processor.h
* @author Нездоймишапка А.О., гр. 515б
* @date 12 квітня 2024
* @brief Лабораторна робота № 6, варіант 15
*
* Використання масивів. Завдання 1
*/
#ifndef EMAIL_PROCESSOR_H
#define EMAIL_PROCESSOR_H
int obfuscate_email(char* email);
#endif
/**
* @file email_processor.c
* @author Нездоймишапка А.О., гр. 515б
* @date 12 квітня 2024
* @brief Лабораторна робота № 6, варіант 15
*
* Використання масивів. Завдання 1
*/
#include <string.h>
#include "email_processor.h"
#define _CRT_SECURE_NO_WARNINGS
/**
* Заміна символа @ на " at " і точки на " dot ".
*
* Функція замінює символ @ на " at " і точку на " dot " у вихідному рядку email,
* якщо він містить лише один символ @. Якщо в рядку більше одного символу @ або
* відсутній жоден @, то заміна не виконується.
*
* @param email Рядок електронної пошти для обробки
* @return 1, якщо заміна була виконана успішно; 0, якщо не було здійснено заміну
*/
int obfuscate_email(char* email) {
int at_count = 0;
// Підраховуємо кількість символів @ у рядку email
for (int i = 0; email[i] != '\0'; i++) {
if (email[i] == '@') {
at_count++;
}
}
// Якщо символ @ відсутній або їх більше одного, повертаємо 0
if (at_count != 1) {
return 0;
}
// Замінюємо @ на " at "
char* at_ptr = strchr(email, '@');
if (at_ptr != NULL) {
*at_ptr = ' ';
strcpy(at_ptr + 1, " at ");
}
// Замінюємо кожен символ . на " dot "
char* dot_ptr = strchr(email, '.');
while (dot_ptr != NULL) {
*dot_ptr = ' ';
strcpy(dot_ptr + 1, " dot ");
dot_ptr = strchr(dot_ptr + strlen(" dot "), '.');
}
return 1; // Заміна виконана успішно
}