【C 语言】字符串模型 ( strstr-do…while 模型 )
文章目录
- 前言
- 一、strstr 函数
- 二、子串查找业务场景
- 三、代码示例
前言
字符串开发模型 :
strstr-while/do…while 模型 : 在 字符串 中 查找 子串特征 ;
两头堵模型 : 两个指针变量 , 一个指向首部 , 一个指向尾部 , 进行 翻转 , 逆序 等操作 ;
字符串翻转模型 : 借助 指针 进行翻转 , 或 借助 栈 后进先出的特性 , 进行 翻转 ;
一、strstr 函数
strstr
函数的作用是在 char *str1
字符串中查找 char *str2
字符串 ;
函数原型 :
#include <stdio.h>
#include <string.h>
extern char *strstr(char *str1, const char *str2);
char *str1
参数是 大字符串 ;const char *str2
参数是 小字符串 ;返回值 : 如果
char *str1
中包含const char *str2
子串 , 则返回该子串第一次出现的指针地址 , 如果没有 , 则返回 NULL ;
二、子串查找业务场景
业务场景 : 给定字符串 , 然后在下面的字符串中查找 “abc” 字符串的出现次数 ;
// 存在如下字符串, 求下面字符串 "abc" 出现次数
char *p = "sdfsdfsdabc4548411abc";
令指针指向 字符串 首地址 , 查找后面的 字符串 中是否是 “abc” ;
三、代码示例
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{// 存在如下字符串, 求下面字符串 "abc" 出现次数char *str = "sdfsdfsdabc4548411abc";// 记录下 "abc" 子串出现次数int count = 0;// 使用 p 指针进行遍历char *p = str;do{// 查找 p 指针指向的字符串中, 是否包含 "abc" 子串// 如果包含 , 返回子串第一次出现的指针地址// 如果不包含 , 返回 NULLp = strstr(p, "abc");// 包含的情况if(p != NULL){// 子串出现次数 + 1count++;// 跳过当前的 "abc" 子串 , 从后面开始遍历p = p + strlen("abc");}else{// 如果没有找到 "abc" 子串 , 则退出循环换break;}}while(*p != '\0');// 打印子串出现次数printf("count = %d\n", count);// 命令行不要退出system("pause");return 0;
}
执行结果 :
【C 语言】字符串模型 ( strstr-do…while 模型 )相关推荐
- C语言字符串相关一级指针内存模型
C语言字符串相关一级指针内存模型 通过实例探索一级指针内存模型 通过实例探索一级指针内存模型 void main() {char buf[20]= "aaaa";char buf2 ...
- 【C 语言】字符串模型 ( 键值对模型 )
文章目录 一.业务逻辑需求 二.完整代码实现 一.业务逻辑需求 在 C 中实现 键值对 字符串 的 读取 , 解析 , 保存 操作 ; 键值对字符串样式 "key = value" ...
- C语言一级指针(char *)易错模型分析
C语言一级指针char *易错模型分析 char *(字符串)做函数参数出错模型分析 越界 不断修改指针变量的值 你向外面传递什么 重复的错误何时休 char *(字符串)做函数参数出错模型分析 建立 ...
- R语言编程学习之函数与模型:VAR与SVAR和爬虫(图)
R语言编程学习之函数与模型:VAR与SVAR和爬虫(图) SVAR模型与VAR模型在模型设定形式上的区别是,VAR模型只包含变量的滞后项,而SVAR模型还包含了变量的当期项.SVAR模型还可以避免联立 ...
- NLP通用模型诞生?一个模型搞定十大自然语言常见任务
翻译 | 于之涵 编辑 | Leo 出品 | AI科技大本营 (公众号ID:rgznai100) AI科技大本营按:目前的NLP领域有一个问题:即使是再厉害的算法也只能针对特定的任务,比如适用于机器翻 ...
- R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能
R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...
- R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称
R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录
- R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等
R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录
- R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)
R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录
- R语言机器学习Caret包(Caret包是分类和回归训练的简称)、数据划分、数据预处理、模型构建、模型调优、模型评估、多模型对比、模型预测推理
R语言机器学习Caret包(Caret包是分类和回归训练的简称).数据划分.数据预处理.模型构建.模型调优.模型评估.多模型对比.模型预测推理 目录
最新文章
- Could not generate DH keypair 解决方案
- 四、数据仓库和Hive环境搭建
- Mac OS 的历史
- anaconda3对应的python版本_利用SWIG实现Python调用C/C++!速度快就算了,代码量还特少!...
- Activiti 多个并发子流程的应用
- cookie 原理及应用
- matlab中sum(w.),matlab中sum
- html获取页面input值,javascript怎么获取input中用户输入的内容?
- opencv java教程_详解OpenCV For Java环境搭建与功能演示
- macOS 12 内置原生壁纸下载
- Hi3518EV200实现H264视频采集的源码及流程详解(不依赖SAMPLE库)
- layui图标显示不正常,显示成方块
- iphone手机可不可以运行java_如何在不启动Xcode的情况下运行iPhone模拟器?
- 关于msn 微软关闭MSN聊天信息超级链接功能
- 编程实现幂函数,(指数为整数)
- word打开文档很久很慢_Office软件打开速度慢怎么处理?Word打开很慢如何解决?...
- kettle用命令行执行ktr和kjb
- 放大器的传递函数_运放全差分放大器实现单端与平衡的相互转换
- 【刷题】BZOJ 2959 长跑
- c语言sht 和ch,普通话指导:z、c、s和zh、ch、sh的分辨