当前位置:  开发笔记 > 程序员 > 正文

开发了一种替代方案

如何解决《开发了一种替代方案》经验,为你挑选了1个好方法。



1> Brian R. Bon..:

旁注:"令牌"一词通常用于描述返回的字符串部分.分隔符用于描述分隔标记的事物.因此,为了使您的代码更清晰,您应该将token重命名为delimiter并将dest重命名为token_dest.

你的功能和strtok的差异:

你的函数和strtok之间有几点不同.

您的函数所做的只是删除令牌分隔符

您只需调用一次函数来处理字符串的所有部分.使用strtok,您可以为字符串的每个部分多次调用它(后续时间以NULL作为第一个参数).

strtok也会破坏源字符串,而你的代码使用自己的缓冲区(我认为最好像你一样使用你自己的缓冲区).

strtok存储每次调用后第一个参数为NULL的下一个标记的位置.然后将该位置用于后续调用.这不是线程安全的,你的功能是线程安全的.

strtok可以使用多个不同的分隔符,而您的代码只使用一个分隔符.

话虽这么说,我会提出如何做出更好的功能的建议,而不是更接近strtok实现的功能.

如何改进你的功能(不模仿strtok):

我认为最好进行以下更改:

让你的函数只返回'next'标记

当你有*source或*source == delimiter时,打破你的循环

返回指向包含下一个标记的源字符串的第一个字符的指针.该指针可用于后续调用.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有