Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175770
  • 博文数量: 34
  • 博客积分: 2157
  • 博客等级: 大尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-19 16:05
文章分类

全部博文(34)

文章存档

2011年(1)

2010年(33)

分类:

2010-10-28 17:53:29

字符串处理函数设计的几个基本原则

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.
阅读(2223) | 评论(0) | 转发(0) |
0

上一篇:C语言如何取值?

下一篇:香山小记

给主人留下些什么吧!~~