#include<stdio.h>//标准的输入输出流
#include<stdlib.h>//system("pause")要用
#include<string.h>//strlen()函数要用到
int func(char str1[], char str2[99]);
int main(void)
{
char str1[99],str2[99];
printf("请输入一串字符串\n");
scanf_s("%s", str1, 99);
getchar();//将缓存区的空格读入,以免后期如果是输入一个字符
//那么程序就不会读入你想要的那个字符,会从缓冲区中读入那个换行符
printf("请输入你要查找的字符串\n");
scanf_s("%s", str2, 99);
int m = func(str1, str2);//调用func函数返回字符串中子串出现的次数,用变量m来接收它
printf("%d次\n", m);
system("pause");将黑色窗口停留,用户按任意键后才会退出
return 0;//程序正常运行要返回一个0
}
int func(char str1[], char str2[99])
{
int i, j;
int count = 0;//计数器
for (i = 0; i < strlen(str1); i++)
{
for (j = 0; j < strlen(str2); j++)
{
if (*(str1 + j + i) !=*(str2 + j))
//不是*(str2+i+j)是*(str2 + j))
// *(str1 + j + i)这个加i的原因只是因为表示循环到了第几轮了
{
break;
}
}
if (j == strlen(str2))
{
count++;
}
}
return count;//返回得到的结果
}
计算字符串中某个子串出现的次数 c语言 通俗易懂~
最新推荐文章于 2023-11-06 20:39:18 发布