strchr 、 strrchr 、strrstr的实现

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strchr(const char *dst, char c)
{
	assert(dst);
	const char *pdst = dst;
	while (*pdst)
	{
		if (*pdst == c)
			return (char *)pdst;
		else
			pdst++;
	}
	return NULL;
}
int main()
{
	char c=0;
	char arr[40]={0};
	char * = NULL;
	scanf("%c", &c);
	scanf("%s", arr);
	str=my_strchr(arr, c);
	printf("%#p\n",*str);
	system("pause");
	return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strrchr(const char *src, char c)
{
	assert(src);
	const char *psrc = src;
	char *dst = NULL;
	while (*psrc)
	{
		if (*psrc == c)
			dst =(char *) psrc;
		psrc++;
	}
	return dst;
}
int main()
{
	char c = 0;
	char arr[40];
	char *place = NULL;
	scanf("%c%s", &c, arr);
	place = my_strrchr(arr, c);
	printf("%#p\n",place);
	system("pause");
	return 0;
}

//strrstr库里面没有
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strrstr(const char *dst, const char *src)
{
	assert(dst);
	assert(src);
	const char *pdst = dst;
	const char *psrc = src;
	char *right= NULL;
	while (*dst)
	{
		while (*pdst == *psrc)
		{
			if (*pdst== ‘\0‘)
				return right=(char *)dst;
			else
			{
				pdst++;
				psrc++;
			}
		}
		if (*psrc == ‘\0‘)
			right = (char *)dst;
		pdst = ++dst;
		psrc = src;
	}
	return right;
}
int main()
{
	char arr1[50] = { 0 };
	char arr2[40] = { 0 };
	char *place = NULL;
	scanf("%s%s",arr1, arr2);
	place = my_strrstr(arr1, arr2);
	printf("%#p\n",place);
	system("pause");
	return 0;
}
时间: 2024-11-01 00:21:21

strchr 、 strrchr 、strrstr的实现的相关文章

strstr()查找函数,strchr(),strrchr(),stristr()/strpos(),strrpos()查找字符串位置

在一个较长的字符串这查找匹配的字符串或字符,其中strstr()和strchr()是完全一样的. 例: echo strstr('why always you','you'); 输出: you 如果为: echo strstr('why always you','you'); 则无输出 stristr()函数对大小写不敏感 strrchr()函数会输出找到的字符串及字符串以后的字符 echo strrchr('why always you','always'); 输出: always you 有

strstr strchr strrchr

通过函数的定义来区分: 1.strstr: 返回子串出现的第一次位置 char *strstr(const char *haystack, const char *needle) 可见,strstr函数搜索的是一个const char*型的数据,即字符串常量 2.strchr: 返回字符出现的第一次位置 char *strchr(const char *str, int c) 而strchr搜索的是一个int型的数据,即字符 3.strrchr: 返回字符出现的倒数第一次位置 char *str

有意思的字符串查找函数

通过一段时间对字符串的了解,我发现了许多有意思的字符串函数,下面我们就以常见的字符串查找函数:strchr,strrchr,strstr,strrstr为例来模拟实现这些有意思的字符串查找函数. [strchr][strrchr] 查找一个字符,有所不同的是:strchr用于查找这个字符第一次出现的位置,strrchr用于查找这个字符最后一次出现的位置.下面我们就来打开MSDN来查找这两个字符查找函数的函数原型: char *strchr(const char *string,int c) ch

php核心知识纲要总结以及学习路线

php介绍 缩写:Personal Home Page ==>>PHP:HypeText Preprocessor 历史 1995PHP/FI,Rasmus Lorderf,Personal Home Page 1997PHP/FI2.0,1998PHP3,2000PHP4,2005PHP5 应用范围: web服务器端脚本 命令行脚本 应用程序图形界面 php运行环境 BS软件模式 浏览器软件若干 web服务器软件若干 后台程序语言若干 web运行流程: 浏览器输入地址,回车(发送请求) 根据

CString和string

CString和string(一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: CString(typedef CStringT > CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可): char*为C编程中最常用的字符

C 语言字符串处理函数实现合集

其中包括:strcpy(char *, char *),strncpy();strcat();strncat();strcmp();strncmp();strchr();strrchr();strlen(); strdup();strspn();strpbrk();strtok(); memset();memcpy();memmove();memcmp();memscan();strstr(); _strupr_();_strlen_();_strsplit_();_hex2dec_();_st

驱动中字符串的操作

/如果本文有不对的地方,望即时指点! 字符串的初始化 定义一个UNICODE_STRING类型的变量,这只是一个空的结构体而已,我们并没有给它分配任何的内存.如果直接对其进行字符串拷贝等操作,肯定会 引起异常的,当我们定义这样类型的一个变量,我们应该就把它看作一个WCHAR型的指针,没有“new”空间,所以我们必须去“new”空间给它. typedef struct { USHORT Length; USHORT MaximumLength; PWCHAR Buffer; }UNICODE_ST

【C 标准库】&lt;string.h&gt;

参考链接:C 标准库 - <string.h> string.h中主要有两类函数: memxxx 和 strxxx,其中memxxx是针对内存操作的函数,在遇到'\0'的时候并不会停下来,而通常是设置一个size_t类型(其实是unsigned int)的参数来表示字节大小: 而strxxx是针对字符串操作的函数,遇到'\0'停下来.strxxx函数中,有一些函数是strnxxx的,这些函数可以通过传入一个size_t类型的参数来表示字节大小,所以遇到'\0'或到达字节大小都会停下来,相对安全

php核心纪要 整理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

转:char*, char[] ,CString, string的转换

转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: CString(typedef CStringT > CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicod