键盘输入两个字符串 arr1和 arr2,统计字符串 arr2 在 字符串 arr1 中出现的次数,并输出.
这段代码有点长,但是理解起来到是不是太难,根据题目可知字符串arr1的长度是大于arr2的长度的,所以这里没有对它们两个进行比较,要是在不知道的情况下就需要比较判断它们两个谁是子串了,这个也好比较,通过strlen算一下长度比较一下就行了,这里while语句循环判断的条件是 *p当它为‘\0’时 也就是说当较长的字符串遍历结束后整个代码完成统计了,进入循环后先进行字符的比较,如果相等便进入if语句内,长度较小的字符串先向后移一位,在用 j 这个变量统计移动的长度,在拿j与子串的长度进行比较,如果不想等,字符串向后移一位在进行比较,如果相等说明,找到了一个子串,统计变量count加一,然后在吧j重置为0,子串在回到第一个字母,跳出本次循环,接着向后进行比较。如果不相等则进入else语句,字符串位置向后移一位,子串回到第一个字符,j 重置为0,这样就能保证,字符串是一直在向后移动,如果子串中有前几个字母和字符串相同当遇到不同的字母时,又从新开始比较,只有确保全部字母相同是,才进行统计加一。
统计字符串中 子串出现的次数
最新推荐文章于 2024-05-03 08:43:15 发布