自创的C语言枚举字符串算法
来源:互联网 发布:js return 多个值 编辑:程序博客网 时间:2024/05/16 21:19
本人大一狗,才学完C语言。
本来是制作一个用字典法暴力破解hash值的程序,但是途中出现了问题,就是字典文件。8位纯字母的字典居然要1000多GB,无奈之下只能使用枚举法来循环字符串了。
当时是比赛的一道题目,由于需要每种可能的情况,所以要循环出N位所有可能性的纯字母字符串,就是从aaaaa~zzzzz所有的可能性。
我使用的是数组,每位用ASCII的值来循环达到目的,循环出数字后用类型转换转换成字符型,最终得出需要的字母。
#include<stdio.h>int main(){int i,j,k,l,m;//定义循环变量char word[6];//定义存放字符串的数组,大小因为字符串大小+1个,因为最后应该存放字符串结束符'\0'for(i=97;i<=122;i++)//开始第一位循环 97和122代表ASCII码a-z{for(j=97;j<=122;j++)//第二位循环{for(k=97;k<=122;k++)//第三微循环{for(l=97;l<=122;l++)//第四位循环{for(m=97;m<=122;m++)//第五位循环{word[0]=(char)i;//需要类型转换,将ascii码转换为字符word[1]=(char)j;word[2]=(char)k;word[3]=(char)l;word[4]=(char)m;word[5]='\0';//在数组最后插入'\0'结束符,否则会出现乱码printf("%s\n",word);//输出字符串}}}}}return 0;}
这是一个5位字符串的循环,老师说循环层数太多效率低,所以我标题说了效率低。。
for里面的97 和 122代表了ascii码表里的a和z,这表示每位字符从a循环到z,如果还有大写、数字、字符的话可以更改这里的数字为相应的ascii值。
- 自创的C语言枚举字符串算法
- C语言 - 自创题目:字符串输入的计算器(加减乘除计算器)
- 自创C语言灌水程序
- 字符串如何转化为对应的枚举值 C语言
- C语言字符串算法
- c语言:字符串匹配的KMP算法
- C语言的枚举类型
- c语言的快速枚举
- C语言枚举的用法
- C语言的枚举类型
- C语言的枚举类型
- c语言的枚举类型
- 一个自创的编码解码算法
- 自创的一个全组合算法
- c语言 字符串倒叙算法
- 1.2 实现C语言风格的字符串反转的算法
- 字符串匹配的RabinKarp算法的c语言实现
- C语言经典算法-字符串的颠倒
- spdylay 0.3.7 发布,SPDY 的 C 语言实现
- Struts2学习笔记03
- ORACLE 分析函数
- CPU处理器架构
- 解决gdb在mac下面签名错误
- 自创的C语言枚举字符串算法
- Ubuntu Apache的安装和配置以及CGI的设置
- socket编程步骤
- 【Android 开发】:UI控件之开关状态按钮 ToggleButton 的使用方法
- Ubuntu安装mod_python
- 生活得有多么艰难
- HDU 1049 Climbing Worm
- Ubuntu12.04下安装Matlab 2012a
- android_eclipse快捷键