统计邮件个数(hotmail)

    技术2022-05-11  161

    //countmail.h

    #define COUNTM struct countmail#define STRC 128

    COUNTM{ int count; char mail[STRC]; COUNTM* next;};

    //

    //countmail.cpp

    // countmail.cpp : Defines the entry point for the console application.//

    #include "stdafx.h"#include <stdlib.h>#include <stdio.h>#include <string.h>

    #include "countmail.h"

    #define LEN 128

    int main(){////变量定义 FILE *fp; COUNTM *head=NULL; COUNTM *p1=NULL,*p2=NULL,*p3=NULL,*pp=NULL; char str[LEN]; int i=0; bool tf=false;////文件打开

     if((fp=fopen("26.txt","rb"))==NULL) {  printf("ERROR!");  exit(0); }////文件打开成功,开辟空间,建产链表  head=(COUNTM*)malloc(sizeof(COUNTM)); head->next=NULL; head->count=0;  while(!feof(fp)) {  p2=(COUNTM*)malloc(sizeof(COUNTM));  p2->next=NULL;  p2->count=0;  fgets(str,LEN,fp);    if(*(str+(strlen(str))-1)=='/n')   *(str+(strlen(str)-2))='/0';    if(p1==NULL)  {   i=0;   while(str[i]!='/0')   {    if(str[i]=='@')     break;    i++;   }   strcpy(p2->mail,str+i+1);   p2->count+=1;   p1=p2;   head->count+=1;   head->next=p1;  }  else  {    i=0;   while(str[i]!='/0')   {    if(str[i]=='@')     break;    i++;   }   strcpy(p2->mail,str+i+1);   p2->count+=1;   p2->next=NULL;   p1->next=p2;   p1=p1->next;   head->count+=1;  }   }////统计 p1=head->next;

     while(p1) {  p2=p1->next;  p3=p1;  while(p2)  {   if(strcmp(p1->mail,p2->mail)==0)   {    p1->count+=1;    p3->next=p2->next;    //free(p2);    p2=p2->next;   }   else   {    p3=p3->next;    p2=p2->next;   }  }  p1=p1->next; }////文件遍历 p1=head->next;

     printf("---------------------------------------------"); printf("/ncount E-mail: %d/n",head->count); printf("---------------------------------------------/n");

     while(p1) {  

      printf("%s :%d/n",p1->mail,p1->count);  p1=p1->next; }///// 

     fclose(fp); return 0;}


    最新回复(0)