C语言-这个程序怎么理解,!str2[j]是什么意思?还有下面一步,j=0;i++;怎么用?ret

C语言-这个程序怎么理解,!str2[j]是什么意思?还有下面一步,j=0;i++;怎么用?return-1是什么?... C语言-这个程序怎么理解,!str2[j]是什么意思?还有下面一步,j=0;i++;怎么用?return -1是什么? 展开
 我来答
奈何丶许你温柔
推荐于2016-03-28 · 超过13用户采纳过TA的回答
知道答主
回答量:58
采纳率:62%
帮助的人:19万
展开全部
这应该是个查找函数
在str1中查找是否有str2字符串。
从str1的第一位开始查找起,比较str2的第一位是否相同,如果相同,两个字符串同时向后移位,再比较下一个。如果一直到str2字符串结束时全都相同,则说明str1中含有str2字符串,则返回0,表示查找成功
若一直到str1的结尾,都不含str2字符串,则返回-1表示查找失败
str2[i]表示str2字符串中的一个字符,当str2未到结尾时,!str2[i]值为0,则不执行if,到结尾时为1,也表执行到str2的结尾了,不懂可以再问哦
更多追问追答
追问
外层循环没有明白,内层循环应该就可以比较完成两个字符串是否相同
追答
假如str1字符串为abcdabde
str2为abd
从str1的第一个字母a开始比较,第一个相同,则同时向后移位,就比较各自第二个,还是相同,则同时再向后移位,比较第三个,这时候第三个不相同。
则str2又重新移到a
str1移到b(这是外循环)
这时候从str1的第二位开始比较起,第一位不同,则str2回到第一位,str1向后移位
这时候从str1的第三位比较起,即从c开始比较
这样依次类推,
如果一直到最后一位还没有相同的
就返回-1表示查找失败
有相同的则就停止,返回0
蕪視壹苆灬
2015-02-16 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:10.7万
展开全部
!str[2]是当str[2]数值等于0为假,不等于0时逻辑值为1时,前面加上!是逻辑非,表示相反
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友377da62
2015-02-16
知道答主
回答量:28
采纳率:0%
帮助的人:10.3万
展开全部
解析为:如果str2[]的第j个元素不为0,就返回0,然后把0赋给j,i自增加1,如果不满足while(str1[i])的条件,函数就返回-1这个值
追答
解析为:如果str2[]的第j个元素为0,就返回0,然后把0赋给j,i自增加1,如果不满足while(str1[i])的条件,函数就返回-1这个值
第一条写错了点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式