C语言之strstr函数

C语言之strstr函数【FROMMSDN&&百科】原型:char*strstr(constchar*str1,constchar*str2);#include找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。Returnsapointertothefirstoccurrence

大家好,又见面了,我是你们的朋友全栈君。

【FROM MSDN && 百科】

原型:char *strstr(const char *str1, const char *str2);

#include<string.h>

找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。

Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str. If strSearch points to a string of zero length, the function returns str.

DEMO: mystrstr



#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#pragma warning (disable:4996)
char *mystrstr(char *s1,char *s2);
int main(void)
{
	char *s="Golden Global View";
	char *l="ob";   //char *l=""
	char *p;
	system("cls");
	p=mystrstr(s,l);
	if (p!=NULL)
	{
		printf("%s\n",p);
	}
	else
	{
		printf("Not Found!\n");
	}
    getch();
	return 0;
}
/*FROM 百科*/
char *mystrstr(char *s1,char *s2)
{
	int n;
	if (*s2)                      //两种情况考虑
	{
        while(*s1)               
		{
            for (n=0;*(s1+n)==*(s2+n);n++)
            {
				if (!*(s2+n+1))            //查找的下一个字符是否为'\0'
				{
					return (char*)s1;
				}
            }
			s1++;
		}
		return NULL;
	}
	else
	{
		return (char*)s1;
	}
}

DEMO:

//#define FIRST_DEMO
#define SECOND_DEMO

#ifdef FIRST_DEMO
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
	char *s="Golden Global View";
	char *l="lob";
	char *p;
	system("cls");
	p=strstr(s,l);
	if (p!=NULL)
	{
		printf("%s\n",p);
	}
	else
	{
		printf("Not Found!\n");
	}

	getch();
	return 0;
}
#elif defined SECOND_DEMO
/*从字串” string1 onexxx string2 oneyyy”中寻找”yyy”*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
	char *s="string1 onexxx string2 oneyyy";
	char *p;
	p=strstr(s,"string2");
	printf("%s\n",p);
	if (p==NULL)
	{
		printf("Not Found!\n");
	}
	p=strstr(p,"one");
	printf("%s\n",p);
	if (p==NULL)
	{
		printf("Not Found!\n");
	}
	p+=strlen("one");
	printf("%s\n",p);

	getch();
	return 0;
}
#endif

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153025.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机最小系统电路图_51单片机最小系统介绍

    51单片机最小系统电路图_51单片机最小系统介绍单片机最小系统包括单片机,电源电路,晶振电路和复位电路。电源电路:目前主流单片机的电源分为5V和3.3V这两个标准,STC89C51需要5V的供电系统。晶振电路:晶振为11.0592MHz(可以准确得到波特率9600和115200),为单片机系统提供基准时钟信号,电容(C2、C3)的作用是帮助无源晶振起振,并维持振荡信号的稳定。复位电路:为了防止程序跑飞,当芯片工作异常时,可以按下复位键重新启动。复位电路分为高电平复位和低电平复位,89C51是高电平复位。在单片机系统中,系统上电启动的时候复位一.

    2022年8月30日
    2
  • lvm调整大小

    lvm调整大小

    2022年3月6日
    35
  • ubuntu16.04 svn配置「建议收藏」

    ubuntu16.04 svn配置「建议收藏」虽然目前最流行的项目托管平台是github,其分布式的存储思想非常先进,对于项目的敏捷开发也非常有好处。但缺点在于操作略显复杂,上手需要一定成本。而svn相比git操作简单许多,上手几乎无难度,适用于项目的管理。虽然目前有很多svn的使用方法,但对其使用却描述不够具体或者不够连续,接下来详细写出本人在ubuntu16.04下配置svn并上传至taocode托管平台的步骤:首先安装

    2022年9月13日
    0
  • android短信验证码方案,Android之短信验证码

    android短信验证码方案,Android之短信验证码今天所使用的方案只是android手机设备集成短信验证码功能的方案之一。我们所采用的方案是使用聚合数据的短信验证sdk。接口文档:https://www.juhe.cn/docs/api/…程序的界面如下所示:实现步骤:1.到聚合数据官网上申请短信验证SDK数据,生成AppKey,如下图所示:2.配置工程,把相关的sdk库导入到Project中去,:3.配置AndroidManifest.xm…

    2022年7月25日
    5
  • 2020最新Java面试题(常见面试题及答案汇总)「建议收藏」

    2020最新Java面试题(常见面试题及答案汇总)「建议收藏」Java基础篇1.JDK和JRE的区别是什么?JDK:JavaDevelopmentKit的简称,java开发工具包,提供了java的开发环境和运行环境。JRE:JavaRuntimeEnvironment的简称,java运行环境,为java的运行提供了所需环境。总结:JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含…

    2022年6月21日
    26
  • Mysql | 数据库锁表的原因和解决方法「建议收藏」

    Mysql | 数据库锁表的原因和解决方法「建议收藏」锁表的原因:当多个连接(数据库连接)同时对一个表的数据进行更新操作,那么速度将会越来越慢,持续一段时间后将出现数据表被锁的现象,从而影响到其它的查询及更新。  例如:存储过程循环30次更新操作(cycore_file_id为唯一标识)/*30次更新操作*/BEGINDECLAREv1INTDEFAULT30;WHILEv1&amp;amp;amp;gt;0DOu…

    2022年8月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号