У меня есть текстовый файл, например, как «file_with_email.txt», который содержит следующие адреса электронной почты:поиск электронной почты в текстовом файле
crp.edu
src.net
abc.edu
мне нужно искать по электронной почте в данном текстовом файле. проблема с моим кодом заключается в том, что при вводе адреса электронной почты с полным доменным именем, например, если я ищу, например, «abc.edu», тогда он вернет сообщение как «найденное электронное письмо», что является правильным.
Но в случае, если я введи адрес электронной почты с неполным или частичным доменным именем, например, «abc.ed», в качестве ввода, который не содержится в данном файле, он печатает тот же результат, что и «найденный email» «даже если такого письма нет.
Кроме того, есть случаи, когда электронные письма были бы как «abc.edu.net» в качестве входа пользователя. В этом случае мой код печатает тот же вывод, что и «email found», который не содержится в данном текстовом файле. Я был бы признателен за любую помощь в решении этой проблемы.
Ниже приводится функция для поиска электронной почты в текстовый файл, который я пытался до сих пор:
int search_mail(char *email)
{
FILE *fp;
int line = 1;
int number_of_match = 0;
char temp[512];
char *fname = "/home/file_with_email.txt";
if((fp=fopen(fname, "r"))==NULL)
{
return(-1);
}
while(fgets(temp, 512,fp) !=NULL)
{
fprintf(stdout, "Just read: %s\n", temp);
if(strstr(temp, email) !=NULL)
{
printf("\n The match is found in the file\n ");
//printf("\n %s \n", temp);
number_of_match++;
}
//line++;
}
if(number_of_match == 0)
printf("\n No result found");
//close the file if it is open.
if(fp)
{
fclose(fp);
}
}
Это помогло бы выравнивал код –
Вам не нужно 'если (FP)', как это всегда будет истинным –
'fprintf (stdout' -' printf' будет делать –