运行结果:
内存使用情况:
写入文件排序好的数据:
- 创建文件地址以及创建十一级指针
1 char *path = "QQ.txt"; 2 char *sortpath = "QQchiguowei2018.txt"; 3 //创建十一级指针 4 char *********** allP = NULL;
- 初始化十一级指针
1 //初始化 2 void init() 3 { 4 5 FILE *pf = fopen(path, "r"); 6 if (pf==NULL) 7 { 8 9 printf("文件打开失败"); 10 return; 11 } 12 else 13 { 14 //读取每一行加载到allP中 15 for (int i = 0; i < allN; i++) 16 { 17 char str[50] = { 0 }; 18 fgets(str, 50, pf);//读取 19 char *tmpstr = convertQQ(str);//获取QQ号 20 21 if (isallnum(tmpstr)) 22 { 23 assignmem(&allP, 11, tmpstr);//分配内存 24 25 strcpy(allP[getnum(tmpstr[0])][getnum(tmpstr[1])][getnum(tmpstr[2])][getnum(tmpstr[3])][getnum(tmpstr[4])][getnum(tmpstr[5])][getnum(tmpstr[6])][getnum(tmpstr[7])][getnum(tmpstr[8])][getnum(tmpstr[9])], str); 26 27 } 28 } 29 } 30 fclose(pf); 31 }
- 字符串转提取qq号的函数
1 //字符串提取qq号 2 char *convertQQ(char *str) 3 { 4 int length = strlen(str);//获取长度 5 char *tmp = malloc(length + 1); 6 strcpy(tmp, str);//拷贝,避免数据自动回收 7 //获取第一个'-'的位置 8 char *p = strchr(tmp, '-'); 9 if (p!=NULL) 10 { 11 *p = '