其他
ensungm
这个作者很懒,什么都没留下…
展开
-
1208 Perl是什么
一、Perl是什么? Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。 .Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。 .与脚本语言一样,Perl不需要编译器和链接原创 2009-12-08 23:19:00 · 287 阅读 · 0 评论 -
1209 perl的变量
基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串。一、整型 1、整型 PERL最常用的简单变量,由于其与其它语言基本相同,不再赘述。 例: $x = 12345; if (1217 + 116 == 1333) { # statement block goes here } 整型的限制: PERL实际上把整数存在转载 2009-12-09 23:01:00 · 286 阅读 · 0 评论 -
1211 模式匹配
一、简介 模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);二、匹配操作符 =~、!~ =~检验匹配是否成功:$result = $var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回0,即false转载 2009-12-11 22:55:00 · 371 阅读 · 0 评论 -
1213 子程序
一、定义 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。定义方法为: sub subroutine{ statements; }二、调用 调用方法如下:1、用&调用 &subname; ... sub subname{ ... }2、转载 2009-12-13 20:45:00 · 371 阅读 · 0 评论 -
1210 列表和数组
一、列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()。 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值。 列表例: (17, $var, "a string") (17, 26 (17, $var1 +转载 2009-12-10 23:15:00 · 345 阅读 · 0 评论 -
1212 控制语句
一、条件判断 if ( ) { } elsif ( ) { } ... else{ }二、循环: 1、while循环 while ( ) { }2、until循环 until ( ) { }3、类C的for循环 ,如 for ($cou转载 2009-12-12 22:59:00 · 441 阅读 · 0 评论 -
1216 增加关联数组的元素
创建一个关联数组元素最简单的方法是赋值,如语句$fruit{"bananas"} = 1; 把1赋给关联数组%fruit下标为bananas的元素,如果该元素不存在,则被创建,如果数组%fruit从未使用过,也被创建。 这一特性使得关联数组很容易用于计数。下面我们用关联数组改写上面的程序,注意实现同样的功能此程序简化了许多。 1 : #!/usr/local/bin/转载 2009-12-16 22:32:00 · 330 阅读 · 0 评论 -
1217 创建关联数组
可以用单个赋值语句创建关联数组,如: %fruit = ("apples",17,"bananas",9,"oranges","none"); 此语句创建的关联数组含有下面三个元素: 下标为apples的元素,值为17 下标为bananas的元素,值为9 下标为oranges的元素,值为none 注:用列表给关联数组赋值时,Perl5允许使用转载 2009-12-17 21:58:00 · 390 阅读 · 0 评论 -
1214 子程序参数传递
1、形式 &sub1(&number1, $number2, $nubmer3); ... sub sub1{ my($number1, $number2, $number3) = @_; ... }2、传送数组 &addlist (@mylist); &addlist ("14", "6", "11"); &addlist转载 2009-12-14 22:17:00 · 362 阅读 · 0 评论 -
1215 关联数组
一、数组变量的限制 在前面讲的数组变量中,可以通过下标访问其中的元素。例如,下列语句访问数组@array的第三个元素: $scalar = $array[2]; 虽然数组很有用,但它们有一个显著缺陷,即很难记住哪个元素存贮的什么内容。假如我们来写一个程序计算某文件中首字母大写的单词出现的次数,用数组来实现就比较困难,程序代码如下:1 : #!/usr/loca原创 2009-12-15 22:38:00 · 335 阅读 · 0 评论 -
0203 朴素的模式匹配,改进
改进一下昨天的代码,int strstr_basic(char* str, char* pattern){ char *s = NULL; char *p = NULL; int i = 0; int lenStr = 0; int lenPattern = 0; if (NULL == str || NULL == p原创 2010-02-03 23:26:00 · 670 阅读 · 2 评论 -
0202 不借助strlen的基本字符串匹配算法
int str_str(char* s, char* pattern){ /* 1, define and init */ int sCnt = 0; int ptnCnt = 0; char *ps = s; char *pp = pattern; if (NULL == s || NULL == pattern)原创 2010-02-02 22:43:00 · 494 阅读 · 0 评论 -
0131 链表排序
typedef struct node{ int data; struct node* pNext;}Node; Node * SortLinkList (Node * pHead); Node* SortLinkList(Node *pHead){ /* 1, defines and initialize */ Nod原创 2010-01-31 23:31:00 · 427 阅读 · 0 评论 -
[转载]写博客的好处
[BetterExplained]为什么你应该(从现在开始就)写博客 收藏 (一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样)让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Not转载 2009-09-10 23:49:00 · 2295 阅读 · 0 评论 -
091116(星期一)循环变量被溢出导致死循环的问题
1116 For (BYTE bCount = 0; bCount 当dwNum > 256的时候,bCount无论如何都无法被bCount 终止,从而导致死循环。原创 2009-11-16 22:10:00 · 371 阅读 · 0 评论 -
1117 减法越界导致的死循环
BYTE bCount = MAX, bPace = 2;while (bCount > 0){ … bCount -= bPace; // 1 -= 2 时,bCount的值为255,又大于0无法跳出}原创 2009-11-17 21:20:00 · 351 阅读 · 0 评论 -
1119 如果循环变量是自减变化,警惕限制语句不能有==0的条件
For(; I >= 0; I++){ For(DWORD J =0; j >= I; j--) // 在整个系统里面,变量都是无符号的,永远都是>=0,无论如何自减都跳不出循环。 {…}}原创 2009-11-19 22:29:00 · 551 阅读 · 0 评论 -
1118 while循环比for更容易导致死循环
while (dwCount > 0){Switch(){ Case 1: // 写到high的时候很可能就忘记给dwCount自增了,没有自增导致的死循环不少。 Break;}} 另外,循环变量一律不使用BYTE型的,全部换成dword型。 顺便整理一下前段时间的代码,准备加一个richedit做显示,注意加AfxIni原创 2009-11-18 22:50:00 · 521 阅读 · 0 评论 -
1120 下标也能出大问题
一段代码DWORD dwIndex = INVALID; // 65535…DoSomething(*dwIndex); //正常情况下取出索引,异常情况下把index复位成INVALIDdwOhter = adwArray[dwIndex]; // 数组没有大到65535,上面函数异常返回可控,但是这里就溢出了,程序当掉。原创 2009-11-20 21:25:00 · 318 阅读 · 0 评论 -
1121 strncpy要进行封装
strncpy 原型:extern char *strncpy(char *dest, char *src, int n); 用法:#include 功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 说明: 1 如果src的前n个字节不含NULL字符,则结果不会原创 2009-11-21 23:02:00 · 327 阅读 · 0 评论 -
1122 sizeof只对类型进行操作
否则:1,#define MAX (BYTE)10sizeof(MAX) // 结果并不是10,而是1 2,Method(Array a, BYTE bSizeOfArray)Sizeof(a) // 结果不是数组的大小,而是一个指针的空间大小。原创 2009-11-24 21:15:00 · 338 阅读 · 0 评论 -
1125 动态资源的释放
尤其注意多次资源申请时,后面申请失败需要释放之前申请成功的资源。 Resource1 = Malloc();If (NULL == Resource1){return;} Resource2 = Malloc();If (NULL == Resource1){ Free(Resource1 ); // 返回前注意一定要释放return;}原创 2009-11-26 22:08:00 · 373 阅读 · 0 评论 -
0201 链表操作的分解
所有对链表的操作都是由最基本的几种操作进行组合:当前节点强制使用p指,当前节点的前驱q,当前节点的后驱r,强制使用这种模式,形成范式。1,摘下一个节点q->next = p->next; p被摘下; 2,将pNew插入到p的位置pNew->next = p;q->next = pNew;q = q->next; 3, 复位保持q是p的前驱,不要乱了阵原创 2010-02-01 22:03:00 · 587 阅读 · 0 评论 -
1218从数组变量复制到关联数组
与列表一样,也可以通过数组变量创建关联数组,当然,其元素数目应该为偶数,如: @fruit = ("apples",17,"bananas",9,"oranges","none"); %fruit = @fruit; 反之,可以把关联数组赋给数组变量,如: %fruit = ("grapes",11,"lemons",27); @fru转载 2009-12-18 23:06:00 · 367 阅读 · 0 评论