字符串处理函数设计的几个基本原则
1.最好是设计成字符指针来进行操作
如,char *ch;
2.判断内容,很多情况下判断第一个字符即可
如,if( *ch>=0 && *ch=<9); 判断是否为数字;
if( *ch >='a' && *ch <= 'z'); 判断是否为小写字母;
3.判断是否已经结束?
如,if( ch == 0 ); 也等同于 if( ch == NULL);
4.字符串处理过程
针对一些小的字符串,在处理过程中最好是保留原串,而新开辟另一个操作.利大于弊,很明显的.
如,
char *str1;
char *str2;
str1 = (char*)malloc(256*sizeof(char));
memset(str1,0,256);
str2 = str1;
str1去申请空间,然后将str2的指针指向该区域.这个时候,str1和str2是相同的.
接下来,
str2++;
这就是说,str2会变动,之所以会变动,是因为函数功能需要;说白了,也就是说,现在str2已经和str1指向了不同的地方;而此时,开始调用str1,目的就是取str2移动之后的空间.因为这个共同的空间,因为str2的移动,内容已经变了.
int i = atof(str1);
free(str1);
试想,如果不通过一个指针记录原位置,处理起来恐怕就没那么容易了!
5.字符串比较函数
依照上面几条原则,很容易思路就会出来.逐个比较两个串指向的字符即可.
ps:有时间应该多看看C库里面的函数是如何实现的,感觉应该要比自己的思路更胜一筹.
各位看官,还请多多提出宝贵意见!Thanks.
阅读(1770) | 评论(0) | 转发(0) |