«

»

C的求子串及定位串函数,纠结。

c语言 指针 子串用C#和java之类现代语言久了,字符串操作简直是随心所欲。昨天需在C下写一报文串处理,才发现C中的字符串操作是如此匮乏。只得自己写了二函数,测试结果正常,在实际应用中却错误百出,重温了以前VC编程时的恶梦。指针混乱和内存越界,地址重叠等毫无疑问是最大的问题,strcat函数嵌套多次后也有怪异的表现。自写函数如下:

上面函数导致严重问题,应该是指针越界导致。

函数2改进后如下,先定义内部数组分配足够空间,再拷贝子串数据进入此数组,最后返回数组地址。使用目前正常。

此函数不涉及指针及地址修改,应无问题。

目前软件项目有如下特点:

工期比项目功能更重要,项目功能比项目质量更重要。选择一种开发思路,要避免一些危险的方式。优先选择也许是最笨但最可靠的方法,提高可读性,减少程序陷阱,避免在项目规模扩张后导致无法解决的问题。如C的内存操作,尽量显式分配空间,尽量拷贝而不是指针赋值,虽然牺牲些效率和空间,但带来的好处会远大于损失。

1 星2 星3 星4 星5 星 (尚无评分)
Loading...Loading...

相关文章

.NET中Split方法分别用字符和字符串来分割字符串 以前全心投入C#时注意过这一点,几年后就全忘掉了。今天遇到个错误,调试之后才发现这个问题。C#字符串...
Python中的字符串比较 总算大致看完了《python学习手册》,虽然没有实际编写应用加深理解,也能感觉到是本非常不错的书,如果...
Python的代码缩进 在Fortran之后,好象没见过如此对代码书写位置有严格要求的语言。 对于一个出现了不过20年的相对新型的...
64位Linux下编译器的指针长度 其实一直没有认真测试过这个问题,而64位系统通常也对32位程序提供了很好的兼容性。 已知的是,int在32...
RHEL的GCC中print打印%的问题。 RHEL5.5 64位系统,GCC编译环境,版本就不记得了。没时时间深究这个问题,仅作记录。 一条printf("\%");...
C语言中调用Python函数 C中可以嵌入方式调用Python脚本程序。混合语言编程的唯一好处就是取长补短。比如C语言的性能和底层操作...
C语言的字符串库Bstrlib C语言本身的字符串函数库非但不全,而且有某些安全隐患,如以'\0'为字符串结尾,但'\0'本身实际为一字符...
银联文档中关于Socket连接属性的有用信息 在利用socket技术编写通信程序时,为了保证通信双方可以正常通信,需要设置相关的选项,其中有的选项是协...

发表评论

电子邮件地址不会被公开。