IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 自个实现的字符串函数(用C语言)strlenstrcmpstrcpystrcat,strstr; -> 正文阅读

[C++知识库]自个实现的字符串函数(用C语言)strlenstrcmpstrcpystrcat,strstr;

一、strlen计算字符串长度函数;

C 库函数?size_t strlen(const char *str)?计算字符串?str?的长度,直到空结束字符,但不包括空结束字符。

C 库函数 – strlen() | 菜鸟教程 (runoob.com)

手写:(三种方法)

//1.普通计数法
int my_strlen(const char * str)
{
 int count = 0;
 while(*str)
 {
  count++;
  str++;
 }
 return count;
}
//2.递归法
int my_strlen(const char * str)
{
 if(*str == '\0')
  return 0;
 else
  return 1+my_strlen(str+1);
}
//3.指针法
int my_strlen(char *s)
{
   char *p = s;
   while(*p != ‘\0’ )
       p++;
   return p-s;
}

二、strcmp字符串比较函数;

C 库函数?int strcmp(const char *str1, const char *str2)?把?str1?所指向的字符串和?str2?所指向的字符串进行比较。

C 库函数 – strcmp() | 菜鸟教程 (runoob.com)

手写如下:

int my_strcmp(const char* p1, const char* p2)
{
	assert(p1 && p2);
	while (*p1 == *p2)
	{
		if (*p1 == '\0')
		{
			return 0;
		}
		p1++;
		p2++;
	}
	return *p1 - *p2;
}

三、strcpy字符串拷贝函数;

C 库函数?char *strcpy(char *dest, const char *src)?把?src?所指向的字符串复制到?dest

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

C 库函数 – strcpy() | 菜鸟教程 (runoob.com)

手写如下:

char* my_strcpy(char *dest, const char *src)
{
	assert(dest && src);
	char* ret = dest;
	while (*dest++ == *src++);


	return ret;
}

四、strcat?字符串追加函数;

C 库函数?char *strcat(char *dest, const char *src)?把?src?所指向的字符串追加到?dest?所指向的字符串的结尾。

C 库函数 – strcat() | 菜鸟教程 (runoob.com)

手写如下:

char* my_strcat(char* dest, const char* src)
{
	assert(dest && src);
	char* ret = dest;
	while (*dest)
	{
		dest++;
	}
	while (*dest++ = *src++);
	return ret;
}

五、strstr找子串函数;

C 库函数?char *strstr(const char *haystack, const char *needle)?在字符串?haystack?中查找第一次出现字符串?needle?的位置,不包含终止符 '\0'。

C 库函数 – strstr() | 菜鸟教程 (runoob.com)

手写如下:

 char* my_strstr(const char* s1, const char* s2)
{
	assert(s1&&s2);
	if (*s2 == '\0')
		return (char *)s1;
	char* ch1 = (char *)s1, *ch2 , *q;
	while (*ch1)
	{
		ch2 = (char *)ch1;
		q = (char *)s2;
		while (*ch2 && *q && *ch2 == *q)
		{
			ch2++;
			q++;
		}
		if (*q == '\0')
		{
			return ch1;
		}
		ch1++;
	}
	return NULL;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:48:45  更:2021-09-19 07:51:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:22:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码