C语言最糟糕的设计字符串,关于C语言中字符串函数设计的一些想法

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

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) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值