`
阿尔萨斯
  • 浏览: 4173853 次
社区版块
存档分类
最新评论

C++ - 实现strstr函数

 
阅读更多

/*
函数名: strstr
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针;如找不到,返回空指针。
*/

#include <iostream>

#define NULL 0

using namespace std;

char* myStrstr(const char* s1, const char* s2)
{
	int n;
	if(*s2)
	{
		while(*s1)
		{
			for(n = 0; *(s1 + n) == *(s2 + n); n++)
			{
				if(!*(s2 + n + 1))
				{
					return (char*)s1;
				}
			}

			s1++;
		}

		return NULL;
	}
	else
	{
		return (char*)s1;
	}
}

int main()
{
	char s1[10] = "453456789";
	char s2[6] = "45678";
	char* s = myStrstr(s1, s2);
	cout << s << endl;
	return 0;
}

// Output:
/*
456789
*/
分享到:
评论

相关推荐

    C++ VC strstr函数的仿真

    C++ VC strstr函数的仿真

    C++中strstr函数的实现方法总结

    主要介绍了C++中strstr函数的实现方法总结的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下

    C字符串查找优化,strstr函数查找无中文汉字问题

    C strstr字符串查找函数优化,解决查找中文汉字匹配存在错误BUG问题。支持GBK、GB18030字符串。

    c/c++ ststr函数的实现

    自己实现一个简单的strstr函数

    类C语言的脚本解析执行(使用C++语言编写)20080625

    本组建主要用于在程序中解析预先... strstr: split: replace:字符串替换函数 printf: 这些函数基本与同名c函数相同 4、可预先编写一组脚本文件,编译时为每个文件指定ID,供调用时选择 5、字符串可直接赋值及相加

    -C++参考大全(第四版) (2010 年度畅销榜

    26.31 strstr函数 26.32 strtok函数 26.33 strxfrm函数 26.34 tolower函数 26.35 toupper函数 第27章 数学函数 27.1 acos函数 27.2 asin函数 27.3 atan函数 27.4 atan2函数 27.5 ceil函数 27.6 COS函数 27.7 cosh...

    《深入学习c++string》2.1版

    2.1.2 allocator的泛型实现 24 2.1.3 string与char_traits 24 2.1.4 以char和wchar_t特化char_traits 24 附录3 TCHAR.h 映射表 24 日志: 24 1.0 版 24 1.1 版 24 1.2 版 24 2.0 版 24 2.1 版 24

    C/C++字符串查找函数全面了解

    C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符...

    《C++String深入详解2.0版》PDF

    2.1.2 allocator的泛型实现 52 2.1.3 string与char_traits 54 2.1.4 以char和wchar_t特化char_traits 56 附录3:Boost.Format中文文档 57 2.1 大纲 57 2.2 它是如何工作的 57 2.3语法 58 2.3.1 boost::format( ...

    方正笔试

    用c/c++描述strstr函数的函数体2.将一个1M-10M的文件,倒过来存储到另一个文件,就是前一个文件的最后一个字符存到新文件的第一个字符,以此类推 方正笔试 软件测试 总体来说比较简单,做起来比较轻松,要求80...

    c/c++函数库说明(api)html版

    所有的 C / C++ 函数 Constructors (cppstring) Constructors (cppvector) Operators (cppbitset) Operators (cppdeque) Operators (cppstack) Operators (cppstring) Operators (cppvector) abort (stdother...

    c++类的隐式转换与强制转换重载详解

    在写这篇文章之前,让我们先回顾一下编译器通过匹配过程确定调用哪一个函数的匹配顺序:(1)寻找和使用最符合函数名和参数类型(包括返回值)的函数,若找到则调用;(2)否则,寻找一个函数模板,将其实例化产生一...

    C字符串函数对应的C++ string操作详解

    string是STL里的标准类,习惯了使用指针操作C的char *字符串,刚开始并不是很适应,主要原因是对string.h里的函数没有找到合适的C++替换方法,因此,对常用的sring.h里的函数替换说明如下: strcpy: str.substr() ...

    用C++实现,将一句话里的单词进行倒置的方法详解

    用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。C常见的库函数有: 代码如下:int ...

    传智播客扫地僧视频讲义源码

    15_友元函数实现左移右移操作符重载(函数返回值当左值需返回引用)_传智扫地僧 16_友元函数实现操作符重载知识总结 17_重载等号操作符_传智扫地僧 18_数组类小案例_操作符重载需求 19_数组类小案例_重载[]_传智扫地...

    Java程序员要知道的C/C++函数

    (1)函数原型:extern char strstr(char *haystack,char *needle);  用法:#include  功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)返回指向第一次出现needle位置的指针,如果没有...

    c++ 运算符重载和方法重载

    C++在创建一个类的时候就会自动创建六个成员函数 构造函数在创建对象的时候调用 拷贝构造:在创建对象时,使用同一类中之前创建的对象来初始化新建的对象。 赋值操作符重载 取地址操作符重载 const修饰的取地址...

    type_string:没用,只是一个c++玩具

    type_string 是一个使用 C++ 模板构建的字符串库,并为编译时提供字符串“函数”。 功能”列表--- 结构体 u_strcat 结构体 u_strlen 结构体 u_substr 结构体 u_get_char_at 结构体 u_strchr 结构体 u_strrchr...

    世界500强面试题.pdf

    1.4.2. 请修改 append 函数,利用这个函数实现............................................. 78 1.4.3. 有 n 个长为 m+1 的字符串 ................................................................ 82 1.4.4. n...

Global site tag (gtag.js) - Google Analytics