strstr函数实现_popen函数

strstr函数实现_popen函数strstr(str1,str2)函数是用来判断字符串str2,是否为字符串str1的子串,若是子串,则返回第一次出现str2处的地址,若不存在子串,则返回一个空指针。#include<stdio.h>#include<assert.h>#include<string.h>intmain(){ chararr1[]=”abbbcdef”; chararr2[]=”bbc”; char*ret=strstr(arr1,arr2);

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

strstr(str1,str2)函数是用来判断字符串str2,是否为字符串str1的子串,若是子串,则返回第一次出现str2处的地址,若不存在子串,则返回一个空指针。

#include<stdio.h>
#include<assert.h>
#include<string.h>
int main()
{
	char arr1[] = "abbbcdef";
	char arr2[] = "bbc";
	char* ret = strstr(arr1, arr2);
	if (NULL == ret)
	{
		printf("找不到子串\n");
	}
	else
	{
		printf("%s\n", ret);
	}
	return 0;
}

上面的代码,abbbcdef里面是存在字符串bbc的,那么返回的是abbbcdef中b的地址,那么打印出来的也是字符串bbcdef;

模拟strstr

char* my_strstr(const char* str1, const char* str2)
{
	assert(str1 && str2);
	const char* s1 = str1;
	const char* s2 = str2;
	const char* red = str1;
	while (*red)
	{
		s1 = red;//从找到arr1的位置再次开始寻找
		s2 = str2;

		while (*s1 && *s2 && (*s1 == *s2))//当找到*s1 == *s2时候
		{
			s1++;
			s2++;
		}
		if (*s2 == '\0')
		{
			return (char*)red;//找到了arr2子串
		}
		red++;//记录arr1找到哪里了
	}
	return NULL;//没有找到字串
}
int main()
{
	char arr1[] = "abbbcdef";
	char arr2[] = "bbc";
	char* ret = strstr(arr1, arr2);
	if (NULL == ret)
	{
		printf("找不到子串\n");
	}
	else
	{
		printf("%s\n", ret);
	}
	return 0;
}

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

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

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


相关推荐

  • java treetable_在Swing中创建TreeTable | 学步园

    java treetable_在Swing中创建TreeTable | 学步园TreeTable是Tree和Table的一个结合-就是一个即能够展开和收起行,同时也能够显示多个列的组件。在Swing的标准包里没有一个叫做JtreeTable的组件,但是我们很容易通过把Jtree做成Jtable的渲染器来创建一个这样的组件。这篇文章就是关于如何使用该技术来创建一个TreeTable。最后实现一个名为TreeTableExample0的例子程序,该例子实现了一个TreeTabl…

    2022年6月4日
    52
  • 如何严格设置php中session过期时间

    如何严格设置php中session过期时间

    2021年11月6日
    39
  • sublime怎么运行php(sublime运行python)

    前言:我用的是phpstudy安装包,安装php环境,因为是个人PC也没什么敏感文件,所以用phpstudy安装环境是可以的。phpstudy存在安全问题,之前也讨论过了。我用的是sublime编辑器,美观,配置环境稍微有点烦。配置步骤下载、安装phpstudy官网安装时注意不要选择中文安装目录,否则报错,Apache无法启动。安装后找到目录php.exe的所在目录,复制这个路

    2022年4月15日
    175
  • kafka删除主题_kafka从头消费topic数据

    kafka删除主题_kafka从头消费topic数据转自https://www.cnblogs.com/xiaodf/p/10710136.htmlKafka如何彻底删除topic及数据前言:删除kafkatopic及其数据,严格来说并不是很难的操作。但是,往往给kafka使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafkatopic的应用场景,总结一套删除kafkatopic的标准操作方法。step1:如果需要被删除topic此时正在被程序produce和consum

    2022年10月16日
    2
  • PostgreSql新手入门命令[通俗易懂]

    PostgreSql新手入门命令

    2022年2月11日
    29
  • 改变maven打包路径_Maven打包技巧「建议收藏」

    改变maven打包路径_Maven打包技巧「建议收藏」“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是,它有自定义的格式,方便用户直接解压后就在命令行使用。作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包…

    2022年5月30日
    37

发表回复

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

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