其他分享
首页 > 其他分享> > C语言字符串函数详解(strlen strcpy strcat strcmp strstr strtok strerror)

C语言字符串函数详解(strlen strcpy strcat strcmp strstr strtok strerror)

作者:互联网

C语言字符串函数原理深入剖析和实现

在这里插入图片描述


文章目录


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、求字符串长度 strlen

在这里插入图片描述


strlen三种实现方法

1.计数器

size_t strlen1(char* str)
{
	size_t n = 0;
	while (str[n] != '\0')
	{
		n++;
	}
	return n;
}

2.指针-指针

size_t strlen2(char* str)
{
	char* p = str;
	while (*p != '\0')
	{
		p++;
	}
	return p - str;
}

3.递归

size_t strlen3(char* str)
{
	if (*str == '\0')
		return 0;
	else
		return 1 + strlen1(str + 1);
}

二、长度不受限制的字符串函数 strcpy strcat strcmp

1.strcpy

char *strcpy( char *strDestination, const char *strSource );

strcpy 实现

代码如下(示例):

char* mystrcpy(char* det,const char* src)
{
	int n = 0;
	while (1)
	{
		det[n] = src[n];
		if (src[n] == '\0')
			break;
		n++;
	}
	return det;
}

2.strcat

char *strcat( char *strDestination, const char *strSource );

strcat 实现

代码如下(示例):

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

3.strcmp

在这里插入图片描述

strcmp 实现

int my_strcmp(const char* s1, const char* s2)
{
	while (*s1==*s2)
	{
		if (*s1 == '\0')
			return 0;
		s1++;
		s2++;
	}
	return *s1 - *s2;
}

三、长度受限制的字符串函数介绍 strncpy strncat strncmp

strncpy

char *strncpy( char *strDest, const char *strSource, size_t count );

在这里插入图片描述

strncat

char * strncat ( char * destination, const char * source, size_t num )

在这里插入图片描述

strncmp

int strncmp ( const char * str1, const char * str2, size_t num );

四、字符串查找 strstr strtok

strstr

char * strstr ( const char *str2, const char *str1 )

在这里插入图片描述

strtok

char * strtok ( char * str, const char * sep );

五、错误信息报告 strerror

char * strerror ( int errnum );

在这里插入图片描述

标签:const,strtok,strerror,char,str,strSource,字符串,strstr
来源: https://blog.csdn.net/weixin_51484780/article/details/120572788