首页 文章

是否有可能让字符串函数(例如strstr)在C中从一端到另一端考虑一个数组?

提问于
浏览
2

我想知道C中的某些功能是否可以“反向”工作 . 反过来我的意思是:与他们通常“遍历”数组的方式相反 . 例如,我知道strchr返回指向数组中给定字符的第一个出现的指针,而strRchr返回数组中给定字符的最后一次出现 . strtok,strstr和其他任何人都有同样的能力吗?我相信这些选项非常有用,例如:当试图找到最大的回文; (不确定这是一个充分的例子......)

2 回答

  • 1

    不,但您可以先对数组执行reverse(),然后应用所需的功能 .

    http://www.cplusplus.com/reference/algorithm/reverse/

  • 2

    不是,不是 .

    旧的C函数采用"start pointer",并且大多数进度向前,直到它们达到空终止符 . 这是固定的行为 .

    如果你很幸运,他们会采用“开始指针”和长度,这在某些方面更好,但也要求向前遍历,除非功能是专门写的不做 .

    幸运的是,C的更现代的算法采用迭代器对来指定范围,这开辟了一些机会 . 真正的魔力是"reverse iterators"存在,所有可能都是故意抽象的东西 .

    我建议阅读关于C的算法,并放弃旧的C技术 . 虽然C程序员当然仍然存在(并且C应用程序仍然存在,但有充分理由存在),我们其他人很久以前就已经摆脱了这些限制 . ;)

相关问题