为什么不是strfind写返回值在所有情况下吗?
7视图(30天)
显示旧的评论
答案(1)
Stephen23
2016年1月8日
编辑:Stephen23
2016年1月9日
你提出减免的基本属性
strfind
(和
找到
等):在输出的元素数量等于检测模式的数量。如果用户只需要知道
多少次
这种模式存在:
元素个数(strfind (str,帕特))
你的建议后将不再工作。它将需要
特殊情况
为
长度
的输出,即需要在所有的代码分别处理。考虑循环在发现指数:
为帕特k = strfind (str)
有趣(k);
结束
这个循环迭代多次输出指标。因此,如果
帕特
不匹配,那么循环(正确地)迭代0次。如果输出而不是将零它需要一个不舒服的(特殊情况的处理
如果
内循环,或一些丑陋zero-removal循环变量的定义)。
是你的建议也将应用于一致
找到
,以及其他的函数,它返回指数。你能想象的混乱吗?
为什么
0
作为一个输出比
[]
吗?唯一的区别是这些学生得到一些
不同的
错误消息(一些关于指数是零),同样困惑。所需的测试(如果没有发现模式):
idx > 0
不是简单的要求:
~ isempty (idx)
通常我写“no-string-found”情况下,使它明显:
idx = strfind (. .);
如果isempty (idx)
…
其他的
…
结束