zoukankan      html  css  js  c++  java
  • 基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr

    请用C语言实现字符串的查找函数strstr, 找到则返回子字符串的地址,没有找到返回为空,请用数组操作与指针操作实现


    看到题目想到最简单的方法就是母字符串和子字符串比较,如果不同,将指向母字符串的指针向前移动,继续查找,


    下面我们分别用数组操作实现,大家可以很容易改成指针操作实现,

    国际惯例,参考前面文章新建一个vs2013的工程,经过前面的学习大家已经对开发环境很熟悉了,下面我们直接上代码:


    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    char *mystrstr(char *Str, const char *SubStr)
    {
    	int StrLen, SubStrLen;
    	StrLen = strlen(Str);
    	SubStrLen = strlen(SubStr);
    
    
    	//Str长度小于SubStrLen时直接跳过For返回空,
    	//如果Str长度大于等于SubStr则依次递进比较
    	for (int i = 0; i <= StrLen - SubStrLen; i++)
    	{
    		int j;
    		for (j = 0; j < SubStrLen; j++)
    		{
    			if (Str[i + j] != SubStr[j])	//如果不等就跳出循环
    				break;
    		}
    		if (j == SubStrLen)			//如果j == SubStrLen则找到匹配的子串
    			return &Str[i];
    	}
    
    
    	return NULL;
    }
    
    
    int main()
    {
    	printf("%s  
    ", mystrstr("testxx123", "xx12"));
    	return 0;
    }



    运行效果如下图:



    如果有什么问题和疑问可以在下面留言互相探讨。

    原题我已经上传到这里了http://download.csdn.net/detail/yincheng01/6461073 ,

    解压密码为 c.itcast.cn


  • 相关阅读:
    分布式文件系统--->fastDFS
    varnish4.0缓存代理配置
    varnish4.0缓存代理配置
    varnish4.0缓存代理配置
    SDN 是什么
    SDN 是什么
    SDN 是什么
    Solidworks如何保存为网页可以浏览的3D格式
    github 的 配置SSH
    当一个实例被创建,__init__()就会被自动调用
  • 原文地址:https://www.cnblogs.com/new0801/p/6177591.html
Copyright © 2011-2022 走看看