您的位置:首页 > 编程语言 > C语言/C++

密码字典生成【c语言】

2018-01-11 14:24 363 查看
#include<stdio.h>

FILE *file_open();

void close_file(FILE *file);

void alphabetical(FILE *file);

void main(int argc,char *argv[])

{

         FILE *file;

         char Dic = 97; //97 == 'a'

         char ahead_place;     //判断前面的字母

         char *this_position_pointer;  //指向当前数组的指针;

         file = file_open();

        alphabetical(file);

        close_file(file);

}

//打开文件或创建文件

FILE *file_open()



        FILE *file;

 //代开文件或创建文件

        if(NULL == (file = fopen("./字典.txt","w")))

        {

                printf(">>打开文件失败!");

                return 0;

         }

        return file;

}

//关闭文件

void close_file(FILE *file)

{

       fclose(file);

       file = NULL;

}

void alphabetical(FILE *file)

{

        int nCount;

        char str[255] = {0};

        char str1[] = "\n";

        int position,last_place,save_position;  //position是数组位置,last_place是最后一位,save_position是保存当前的数组位置

        for(position = 0;position < 27;position++)

       {

                if(0 != position)

                          for(save_position = position;save_position >= 0;save_position--)

                                        str[save_position] = 'a';

                 last_place = 97;

                 str[position] = last_place;

                while(1)

                {

                            str[position] = last_place;

                             fputs(str,file);

                             fputs(str1,file);

                             last_place++;

                             //如果最后一位是‘z’

                             if('z' == str[position])

                              {

                                       //判断字符串是否全为‘z’

                                      nCount = 0;

                                      for(save_position = position;save_position >= 0;save_position--)

                                                     if('z' == str[save_position])

                                                               nCount++;

                                       //如果nCount == position,则字符串全为‘z’

                                       if((nCount == (position+1)))

                                                break;

                                        //字符串不全为0

                                         for(save_position = position;save_position >= 0;save_position--)

                                          {

                                                if('z' == str[save_position])

                                                        continue;

                                                else

                                                 {

                                                          str[save_position] = str[save_position]+1;

                                                          for(save_position = save_position+1;save_position <= position;save_position++)

                                                          str[save_position] = 'a';

                                                          last_place = 97;

                                                          break;

                                                    }

                                                }

                                     }

                            }

                }

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: