自己动手写一个判断网址合法的C\C++的正则表达式程序
#include<stdio.h>
#include<regex.h>
int main(int argc, char** argv)
{
if(IsLegalPage("http://www.baidu.com"))
printf("该网页合法\n");
else printf("该网页不合法!!!\n");
return 0;
}
/* 函数说明:判断网页是否合法
* 输入参数:需要判断的网址
* 返回结果:网页是否合法(合法1,不合法0)
*/
int IsLegalPage(char* s_tmp)
{
char* pattern="(https?)://.*(\.cn|\.com|\.htm|\.html|\.aspx?|\.jsp|\.php|/|/#)$";
printf("pattern=%s\n",pattern);
int z=0;
regex_t reg;
regmatch_t pm[1];
z=regcomp(®,pattern,REG_EXTENDED|REG_ICASE);
z=regexec(®,s_tmp,1,pm,0);
if(z!=0)
return 0;
else
return 1;
regfree(®);
}
相关文档:
1.写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。
#include<stdio.h>
int gcd(int,int);
int lcm(int,int);
int gcd(int m,int n)
{
if(m%n==0)
return n;
else
return gcd(n,m%n);
}
int lcm(int m,int n)
{
return m*n/(gc ......
位和字节的重排在密码学算法中有广泛的应用。
/* rearran.c:位和字节的重排 */
/* 位反转:以字的中心为对称点进行位反射
例如: abcd efgh ijkl mnop ABCD EFGH IJKL MNOP
位反转:PONM LKJI HGFE DCBA ponm lkji hgfe dcba */
unsigned rev(unsigned x){
/* 交换相邻的单个位 */
x=(x & 0x5 ......
1、选择合适的算法和数据结构
选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。
在许多 ......
——初步设想
最近一直在学习OSGI方面的知识。买了一本《OSGI原理和最佳实践》,可是还没有到。遗憾的是,OSGI目前的几个开源框架只支持Java,对C和C++都不支持的。可惜我们公司目前主要的开发语言还是c和c++,即便是引进OSGI,所得的好处范围有限。而我对松散耦合的模块化开发向往已久。查了一下OSGI对C++支 ......