// 字符串查找_while.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//第一种do while
int main01()
{
const char* p = "11abcd111122abcd333abcd3322abcd3333322qqq";
int n = 0;
do
{
p = strstr(p, "abcd");
if (p != NULL)
{
n++;//累计个数
//重新设置查找起点
p = p + strlen("abce");
}
else//如果没有匹配的字符串,跳出循环
{
break;
}
} while (*p != 0);//如果没有到结尾
printf("n = %d\n", n);
//system("pause");
return 0;
}
//第二种while
int main02()
{
const char* p = "11abcd111122abcd333abcd3322abcd3333322qqq";
int n = 0;
while ((p = strstr(p, "abcd")) != NULL)
{
//能进来,肯定有匹配的子串
//重新设置起点位置
p = p + strlen("abcd");
n++;
if (*p == 0)//如果到结束符
{
break;
}
}
printf("n = %d\n", n);
system("pause");
return 0;
}
//第三种方式-封装函数
int my_strstr(const char *p, int *n)
{
//辅助变量
int i = 0;
const char *temp = p;
while ((temp = strstr(temp, "abcd")) != NULL)
{
//能进来,肯定有匹配的子串
//重新设置起点位置
temp = temp + strlen("abcd");
i++;
if (*temp == 0)//如果到结束符
{
break;
}
}
//间接赋值
*n = i;
return 0;
}
int main()
{
const char *p = "11abcd111122abcd333abcd3322abcd3333322qqq";
int n = 0;
int ret = 0;
ret = my_strstr(p, &n);
if (ret != 0)
{
return ret;
}
printf("n = %d\n", n);
return 0;
}
c语言-字符串匹配
最新推荐文章于 2024-02-24 17:11:15 发布