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

示例代码:

c 复制代码
	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;
	   
	}
    

运行结果:


相关推荐
z***I3946 分钟前
PHP Composer
开发语言·php·composer
1***815320 分钟前
Swift在服务端开发的可能性探索
开发语言·ios·swift
2501_9418798125 分钟前
Python在微服务高并发异步流量控制与动态限流熔断架构中的实践
java·开发语言
zero13_小葵司42 分钟前
JavaScript性能优化系列(八)弱网环境体验优化 - 8.2 离线支持:Service Worker实现基本离线功能
开发语言·javascript·性能优化
S***H28344 分钟前
Swift在系统级应用中的开发
开发语言·ios·swift
J***Q2921 小时前
Kotlin DSL开发技巧
android·开发语言·kotlin
E***U9451 小时前
Kotlin注解处理器
java·开发语言·kotlin
2***57421 小时前
Java内存泄漏排查工具
java·开发语言
一株菌子1 小时前
10.9总结
开发语言·python
席万里1 小时前
Go开源库gcurl实际生产级应用
开发语言·后端·golang