求子串在母串中出现的次数(C++)

I-Cache 和 D-Cache 阅读详情

问题描述:

求一个子串在母串中出现的次数。

(1)思路:

1.用一个外循环,来遍历母串。
2.指定两个指针p、q分别指向子串的首地址和母串的首地址;
3.如果*p==q,则{ p++;q++; }
否则 {
母串首地址向后移动一个位置;
用break跳出比较内循环;
}
4.判断
q==‘\0’,如果是则:计数器++
5.跳出外循环

(2)详细代码:

//C++

#include<conio.h>
#include<string.h>
#include<iostream>
#define M 81
using namespace std;
//fun()函数,ss代表母串,s代表子串.
int fun(char *ss,char *s){
	int count=0;
	char *p,*q;
	while(*ss!='\0'){
		p=ss;                 //p指向ss首地址
		q=s;                  //q指向s首地址
		while(*s!='\0'){
			if(*p==*q){
				p++;
				q++;
			}else {
				ss++;        //此处需注意,当字符比较不相等时,则需要将ss的地址向后移动一个。
				break;
			}
		}
		if(*q=='\0'){
			count++;
		}
	
	}
	return count;
}
int main(){
	char a[M],s[M];
	gets(a);
	gets(s);
	int n=fun(a,s);
	cout<<n<<endl;
	return 0;
}

(3)注:

1.gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以“回车”标志读取结束。
2.fun(*ss,*s)的第二种写法(参考):
int fun(char *ss, char *s) {
	int i, j, k, count= 0;
	for(i = 0; ss[i] != '\0'; i++){
		for(j = i, k = 0; s[k] == ss[j]  &&  s[j] != '\0' ;  k++,j++ ) {      
			if(substr[k+1] == '\0') {                       //s中的每一个字符拿去比较,此时意思是已经比较到s的最后一个字符(因为最后一个字符的后一个是'\0')
				num++;
			}
		}
	}
	return count;
}

(4)结果验证:

## 结果验证

4、同轴3 - RRR球面并联机构运动分析与自主移动农业水果采摘机器人设计 本文研究了同轴3-RRR球面并联机构的运动学与速度分析,采用几何与数值方法进行位置分析,并利用螺旋理论简化雅可比矩阵的推导,通过ADAMS仿真验证了结果的准确性。同时提出一种新型自主移动农业水果采摘机器人设计,具备多功能末端执行器、水果软管转移系统和配重式静态稳定性结构,旨在减少采摘损伤、提升效率。文章还探讨了该机构在机器人控制与仿真中的应用潜力,以及采摘机器人在智能化升级与多机协作方面的发展方向。 阅读详情

相关推荐

点云直线检测-3DLineDetection复现

点云直线分割-Fast 3D line detection

阁楼 8156

C实现-统计子串在母串中出现的次数(具体)

C实现-统计子串在母串中出现的次数(具体)

m0_54158068的博客 3513

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9738

子串统计.

西电2021期末

weixin_64766128的博客 1263

iOS安全攻防:从DarkSword漏洞利用链剖析到纵深防御实践

在移动安全领域,内存破坏漏洞(如堆溢出、释放后使用)是攻击者突破系统防线、实现远程代码执行和权限提升的核心技术原理。这些漏洞利用技术通过精心构造的攻击链,能够绕过沙箱、地址空间布局随机化等安全机制,最终威胁设备内核安全,其技术价值在于揭示了系统安全架构的潜在薄弱环节。在iOS应用开发与系统防护中,理解此类攻击链对于构建有效的纵深防御体系至关重要。应用场景涵盖从安全编码、网络通信加固到运行时应用程序自保护等多个层面。本文以DarkSword工具包为例,深入拆解其利用链,并分享如何通过内存安全实践、代码签名强化

weixin_30357231的博客 481

国产大模型高考横评:数学推理与教育落地能力实测

大模型能力评估正从开放榜单转向封闭任务的确定性验证,高考作为强逻辑、低容错、高精度的标准化考试,成为检验模型真实推理能力的理想标尺。其核心在于考察知识覆盖、步骤完整性、单位敏感性与教学对齐度,而非单纯答案正确率。数学解答题尤其凸显模型在前提校验、条件枚举与过程可控性上的差异,反映出训练数据与教育语料深度耦合带来的工程化优势。该范式已延伸至语文语感建模、英语表达习惯适配及理综跨学科缝合等场景,为智能阅卷、精准答疑和教培系统集成提供可复现、可解释、可部署的技术依据。

weixin_30436581的博客 288

统计字符串出现次数:子字符串在母字符串中出现几次

一位同事在做项目的过程中,需要按行读取txt文件内容,然后判断某个字符串在该行中出现了几次,如果次数超过3次,则做特殊处理。他写的代码大致如下: public static int count(String str, String subStr) { int count = 0; String[] arr = str.split(subStr); int len = arr.len...

weixin_39309402的博客 2482

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2640

PTA 统计子串在母串出现的次数

PTA 6-2 统计子串在母串出现的次数 编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符串为:asd,则应输出n=4。

prodigy623的博客 1925

【Qt开发教程】网络代理QNetworkProxy类详解及实战应用

QNetworkProxy 提供了一种灵活而强大的方式来配置和管理网络代理,通过设置代理类型、主机、端口和认证信息,可以使应用程序的所有网络请求通过代理服务器进行。结合 QNetworkProxyFactory 可以实现动态代理选择和自动配置,提高应用的网络通信能力和安全性。在实际应用中,通过合理设置代理、处理代理认证和错误情况,可以确保应用程序在复杂的网络环境中稳定运行,为用户提供可靠的网络访问体验。

科技改变人类,技术成就未来 1542

《AgentScope-Java 深入浅出教程》第1章 AgentScope-Java 简介

AgentScope-Java 是一个面向智能体的编程框架,专门用于构建基于大语言模型(LLM)的 AI 应用程序。│ 你的业务应用 ││ AgentScope-Java 框架 ││ │ 智能体 │ │ 工具 │ │ 记忆 │ │ 模型 │ ││ LLM 服务 (DashScope/OpenAI/...) │能力说明类比ReAct 推理让智能体能够"思考"并"行动"就像人类思考后再做事工具调用让智能体能够执行外部操作就像人使用计算器、搜索引擎记忆管理让智能体能够记住对话历史。

步子哥的博客 592

第十周第四题,统计字符串子串在母串中的出现次数

请编写函数统计子串Substr在母串Str中出现的次数。函数原型如下,返回值为出现的次数: int Count(char *Str, char *Substr); 【样例说明】第一行为母串、第二行为子串 【样例输入】出现的次数 abcbcbc bcb 【样例输出】 2 #include <iostream> #include <string.h> #include <stdio.h> using namespace std; int fun(char

weixin_62672011的博客 1486

ESP32学习笔记03-日志打印

日志分为5个等级。

Car12 1415

C/C++实现串的操作,使用kmp算法来求子串,实现串的赋值,串的相加,串的比较,删除字符串,置换字符串,求串的长度

使用kmp算法来在母串中找到子串,这里面最重要的就是求next值 然后通过next数组来求出nextvall值 求next值: 一个字符串开始的第一个的next值都是为0,然后第二个值都为1,然后通过字符串的第二个字符和它的下标所值得字符进行比较,如果相同得话就将第二个字符得next值加1,如果不同得话就继续通过next值往前回溯。就这样一直往下执行,一直到最后一个字符。 例如 abaabcac ...

GSY码的博客 755

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PTA C 6-3 求子串在母串中最后一次出现的地址

给定程序中函数fun的功能是:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 函数接口定义: char *fun (char *s, char *t ); 其中 s 和 t 是用户传入的参数。函数求 t 指针所指的字符串在s指针所指的字符串中最后一次出现的地址,并返回,若未找到,则函数值为NULL。 裁判测试程序样例: #include <stdio.h> char *fun (char *s, char *t )

YOASOBI1的博客 1116

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C博客作业--指针

一、PTA实验作业 题目1:6-7 过滤字符串只保留串中的字母字符 1. 本题PTA提交列表(要提交列表,不是结果) 2. 设计思路 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明。 答案错误:忘记在最后面加上‘\0’导致出现错误 反思:字符型数组一定一定要记得结尾有‘\0’~~ 题目2:6-8 使用函数实现字符串部分复制 1. 本题PTA提交列表(要提交列表,不...

diaoxiaxin0941的博客 252

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【数据结构】05串(C&Python)

串,由零个或多个字符组成的有限序列

2302_80648267的博客 410

CodeForces - 528D Fuzzy Search (FFT求子串匹配)

题意:求母串中可以匹配模式串的子串的个数,但是每一位i的字符可以左右偏移k个位置. 分析:类似于 UVALive -4671. 用FFT求出每个字符成功匹配的个数.因为字符可以偏移k个单位,先用尺取法处理出每个位置能够取到的字符.设模式串长度为m. 令\(C(m-1+k) = \sum_{i=0}^{m-1}A_{i+k}*B(m-i-1)\). 反转模式串B, 对每个字符c,若该位上能够取到c,...

weixin_30436891的博客 170

c语言之字符串

2、拷贝函数需要在开始的时候判断源字符串和目标字符串是否为空,如果为空的话就不能进行操作,否则会出现向保护地址写入值的情况,就会出现dump情况。这边我们用到一个c语言库提供的函数strstr函数,用于找到子串在一个字符串中第一次出现的位置,在string.h头文件中。可以看到,如果没有分配空间的话就会出现dump的情况,所以在函数中需要进行判断在进行字符串操作。1、字符串是以'\0'字符结尾的,所以在跳出循环后需要将目标字符的结尾加上一个'\0'字符。欲去掉前后空格,返回一个新字符串。

一个小菜鸡的学习之路 471

Lithe IDEA:低内存IDE与AI Agent的轻量级开发实践

在传统IDE动辄占用数GB内存的背景下,轻量级IDE逐渐成为开发者关注的焦点。其原理在于通过原生UI、按需索引与模块化语言服务降低资源开销。这种低内存IDE的技术价值不仅体现在老设备上流畅运行,更在于为AI编程工具腾出宝贵资源,使本地大模型与内置AI Agent可以深度参与编码、调试和重构。实际应用中,开发者既可使用Ollama等本地模型保护代码隐私,也可通过OpenAI兼容接口接入云端服务,而AI Agent的自动上下文收集和任务拆解能力则显著提升了日常开发效率。以Lithe IDEA为例,这份解析覆盖了

weixin_33889665的博客 466

指针

一、PTA实验作业 题目1:6-7 过滤字符串只保留串中的字母字符 1. 本题PTA提交列表(要提交列表,不是结果) 2. 设计思路(伪代码或流程图) 3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染) 4.本题调试过程碰到问题及PTA提交列表情况说明。 1.编译错误:在指针终(ptr+j)与ptr+j是不一样的,后者是错误的。 2.答案错误:在函数最后没有给*(...

weixin_30873847的博客 164

子串问题(函数、字符串、指针)

【代码】子串问题(函数、字符串、指针)

heliotrope_jin的博客 307
上一篇: 安排比赛<Algrithm>
下一篇: 基于哈夫曼树的数据压缩算法
ଳxin
博客等级 码龄8年 83粉丝 197原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值