第41句中实际上比较的是两个字符串的值是否相同,指针指向的是两个字符串实际的值。
至于返回值嘛,解释如下
35行:比较的是两个字符串的长度,如果需要搜索字符串(strSrc)的长度小于目的字符串(strFind),就直接返回未查询到(-1),这就好比在字符串"adb"中插寻字符串“adbc”首次出现的位置
44行:j代表的是已经查询过目的子串中字符的位置,n2是其长度,这里说的是如果已经查询到字符串末端就说明已经查询到该目的串了,可以直接返回
46行:它表示已经在搜索字符串中查询过字符串了,但是没有查询到,所以返回-1
再次return -1是因为当原字符串(strSrc)的长度大于等于需要查找的字符串(strFind)时,若找完了整个原字符串的长度,也没有找到符合条件的子串guan
那么肯定要返回-1 代表此次查找并没有查到
在每一个i(从头部开始)就比较find的第一个字符,比较不成功就会break
同理,如果第一个比较成功,会接着比较第二个字符,不成功就会break,
..............
如果find字符串全部比较成功,j就等于n2 ,返回i+1
可以看图理解一下,第41行就是在比较strSrc字符数组的第i+j+1(索引值为i+j)个元素是否不等于strFind的第j+1(索引值为j)个元素
你定义的函数返回值是int,不是void,所以函数必须有返回值,如果前面两种if情况不满足,那么就要返回-1,
望采纳!
i 表示遍历字符串StrSrc的字符所处位置,i 从 0 开始遍历。
j 是待查找的字符串strFind 与 StrSrc字符串重合时的位置,如果 j == n2 表示在字符串StrSrc中找到了字符串strFind.
如果 i 执行一次遍历后,没有找到strFind字符串,则最后返回 -1.
这不就是在比较输入的两个字符串吗
第一个字符串多加了个i作为偏移量,就是从位置i开始比较每个字符是不是一样