当前位置: 首页 > news >正文

C语言笔试题之实现C库函数 strstr()(设置标志位)

实例要求:

  • 1、请你实现C库函数strstr()stdio.h & string.h),请在 haystack 字符串中找出 needle 字符串第一个匹配项的下标(下标从 0 开始);
  • 2、函数声明:int strStr(char* haystack, char* needle);
  • 参数:
  • 1、haystack --> 被检索的字符串
  • 2、needle --> haystack字符串内要匹配的子字符串
  • 返回值:
  • 1、函数strStr()返回在 haystack中第一次出现 needle 字符串的位置
  • 2、在 haystack中未找到则返回-1

案例展示:

在这里插入图片描述

实例分析:

  • 1、利用strlen函数分别求出字符串haystack和needle的长度
  • 2、双重for嵌套循环遍历两个字符串
  • 3、设置标志位flag初值为0
  • 4、当flag等于0时,返回第一个匹配项的下标
  • 5、其他的情况则返回-1

示例代码:

	int strStr(char* haystack, char* needle) {int len1 = strlen(haystack);int len2 = strlen(needle);int i = 0;int j = 0;int flag = 0;for(i = 0; i < len1; i++){flag = 0;for(j = 0; j < len2; j++){if(haystack[i+j] != needle[j]){flag = 1;break;}}if(flag == 0){return i;}}return -1;}

运行结果:

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 《Docker极简教程》--Docker基础--Docker的基本概念
  • 如何正确理解和获取S参数
  • C++初阶之类与对象(上)详细解析
  • 《Django+React前后端分离项目开发实战:爱计划》 01 项目整体概述
  • 使用PHPStudy搭建Cloudreve网盘服务
  • chagpt的原理详解
  • 前端架构: 从vue-cli探究脚手架原理
  • 学习笔记:正则表达式
  • [大厂实践] Netflix容器平台内核panic可观察性实践
  • 网络原理-TCP/IP(1)
  • opencv中使用cuda加速图像处理
  • 故障诊断 | 一文解决,TCN时间卷积神经网络模型的故障诊断(Matlab)
  • 假期刷题打卡--Day26
  • kafka 文件存储机制
  • nextcloud 优化扩展
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Laravel 实践之路: 数据库迁移与数据填充
  • Less 日常用法
  • Making An Indicator With Pure CSS
  • PHP的类修饰符与访问修饰符
  • ucore操作系统实验笔记 - 重新理解中断
  • 后端_MYSQL
  • 如何设计一个微型分布式架构?
  • 设计模式走一遍---观察者模式
  • 突破自己的技术思维
  • 微信小程序实战练习(仿五洲到家微信版)
  • 从如何停掉 Promise 链说起
  • 正则表达式-基础知识Review
  • $().each和$.each的区别
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (4)STL算法之比较
  • (Forward) Music Player: From UI Proposal to Code
  • (一) springboot详细介绍
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core控制台应用程序初识
  • .NET DataGridView数据绑定说明
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .netcore如何运行环境安装到Linux服务器
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET程序员迈向卓越的必由之路
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net生成的类,跨工程调用显示注释
  • .NET学习全景图
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .php文件都打不开,打不开php文件怎么办
  • []sim300 GPRS数据收发程序
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [Android]Tool-Systrace
  • [Godot] 3D拾取
  • [Google Guava] 1.1-使用和避免null
  • [HNOI2010]BUS 公交线路