下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。

简介: 下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。

代码如下所示:

int fun(char* s1, char* s2)
 {
  int i=0, j, k,count = 0;
  while(s1[i])//对s1进行遍历
  {
    for (j = i, k = 0; s2[k] == s1[j]; j++, k++)//每遍历一次s2,k的值会被初始化为0
    {                     //相当于s2会反复和s1的子字符串进行判断是否相等
      if (s2[k + 1] == '\0')//判断s2是否结束
      {
        count++;
        break;
      }
    } 
    i++;
  }
  return count;
}
int main() 
{
  char s1[80], s2[80];
  int count;
  gets(s1);
  gets(s2);
  count = fun(&s1[0], &s2[0]);//传递数组首地址和数组名均可
  printf("%d\n", count);
}

输出结果如下:

相关文章
|
4月前
|
C语言 索引 Python
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
107 4
|
6月前
|
语音技术
语音识别,print(“Hello“,end=‘‘)不换行的写法,\t代表着tab,print(“H\tW“),for循环的基础语法,把字符串遍历的写法,数itheima is有几个a
语音识别,print(“Hello“,end=‘‘)不换行的写法,\t代表着tab,print(“H\tW“),for循环的基础语法,把字符串遍历的写法,数itheima is有几个a
|
8月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
81 0
|
存储 JavaScript 前端开发
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
103 0
|
Python
foreach、for in 和for of的区别?判断一个字符串中出现次数最多的字符,统计这个次数?
foreach、for in 和for of的区别?判断一个字符串中出现次数最多的字符,统计这个次数?
56 0
|
JavaScript 前端开发
javascript封装函数:substr函数实现自动截取长度超出限制字数的解决方案
javascript封装函数:substr函数实现自动截取长度超出限制字数的解决方案
110 0
|
C语言 C++
转换符说明使用方法(在printf函数中)
一些常见的转换说明及打印结果: printf()的转换说明修饰符 printf()函数打印数据指令时要与代打印数据的类型相匹配才行。 如%d %c %ld......这些符号叫做转换说明。代表着数据转化成显示的形式。 一些常见的转换说明及打印结果: 转换说明 输出 %d 有符号十进制整数 %c 单个字符 %A 浮点数,十六进制数和p计数法(c99/c11) %a 浮点数,十六进制数和p计数法(c99/c11) %f 浮点数,十进制计数法 %e 浮点数,e计数法 %E 浮点数,e计数法 %i 有符号十进制整数 %o 无符号八进制整数 %p 指针(地址) %s 字符串 %u 无符号十进制整数
175 1
|
Shell
shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换
shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换
2364 0
字符串统计:strlen函数的讲解,及其模拟实现
字符串统计:strlen函数的讲解,及其模拟实现
174 0
字符串统计:strlen函数的讲解,及其模拟实现