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

全部博文(34)

文章存档

2011年(1)

2010年(33)

分类: C/C++

2010-10-19 17:10:10

字符串处理函数设计的几个基本原则
 
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.
阅读(1771) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-20 10:51:35

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com