字符串转浮点数

今天看到一个题,让把字符串转成浮点数,列了一下,需要注意的应该就是这几点 前导空白字符 符号位 前导零 #include <stdio.h> #include <string.h> #include <math.h> double a2f(char *str) { // leading space while (*str==' ' || *str=='t') { str++; } // judge sign int sign = 1;……

阅读全文

针对正则引擎的拒绝服务攻击

最近在看这个书,http://book.douban.com/subject…,在 311 页讲到了一个针对正则引擎的 DoS,叫做 ReDoS,wiki 看这里,http://en.wikipedia.org/wiki/R…,原因是正则引擎在匹配的时候是用状态机,然而通过构造一些特殊的输入,可以让这个状态机需要尝试的路径暴涨,于是就耗时也跟着上升,照着书上敲了代码……

阅读全文

字符串距离

今天见到一个题,让求两个字符串之间的距离,隐约记得之前在 php 中用过这个的现成函数,当时还查了一下原理,是一个俄罗斯的人搞的一个算法,原理是用矩阵,于是就往矩阵上去想,结果没想出来,后来听同学说那是个 dp,想想也是,唉,思路狭隘了 参考这里,http://www.java3z.com/cwbwebho…,写了一个矩阵的版本,……

阅读全文

字符串反转

今天遇到一个题,让反转字符串,简单题,注意下细节就好了 #include <stdio.h> #include <string.h> char *str_reverse(char *str) { if (str == NULL) { return NULL; } for (char *left=str, *right=str+strlen(str)-1; left<right; left++, right--) { char tmp = *left; *left = *right……

阅读全文

根据字符表穷举密码

今天遇到一个题,要求根据 a-z0-9 这些字符穷举出所有的可能的密码,搞了搞,代码如下 #include <stdio.h> #include <string.h> #define PWD_LEN (3) char table[] = "abcdefghijklmnopqrstuvwxyz0123456789"; int table_len = strlen(table); void f(char pwd[], int curr) { if (curr == P……

阅读全文

在 HTTP 协议下分段下载文件

最近想要搞一个 linux 下的多线程下载工具,就像 wget 那样可以,只不过是多线程的,其中遇到一个问题,就是 http 如何分段下载,查找资料最后看到这里,http://www.rosoo.net/a/201006/… 假如一个文件有1000个字节,那么其范围就是0-999,则: Range: bytes=500- 表示读取该文件的500-999字节,共500字节。 ……

阅读全文

linux 下 fork 后的文件资源处理问题

我们都知道 linux 下 fork 一个子进程出来,他能够继承父进程的文件资源,网络资源等,也从父进程那里拷贝了代码段,数据段,缓冲区等等到自己这里有了新的一份,那么,如果父子进程对于打开的文件资源操作不同,会是怎样的结果呢,先看正常的使用代码 #include <stdio.h> #include <unistd.h> int main(i……

阅读全文