关闭

strstr,strcmp,strlen函数实现

标签: 函数基础知识c语言
328人阅读 评论(0) 收藏 举报
分类:

1 函数功能

strstr:char*strstr(const char* dest,const char* src),char*是为了实现链式访问,dest为目标字符串,src为源字符串,找出src字符串在dest字符串中第一次出现的位置(不包括src的串结束符)。返回该位置的指针,如找不到,返回空指针。
strcmp:int strcmp(const char* str1,const char* str2)两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止,若两个字符串相等则返回0,若str1小于str2则返回负数,若str1大于str2则返回正数。
strlen:int strlen(const char* str)计算字符串str的长度。

2 代码实现

strstr
char* my_strstr(const char* dest, const char* src)
{
	assert(dest);
	assert(src);
	char* cp = (char*)dest;
	char* deststart = (char*)dest;
	char* srcstart = (char*)src;
	while (*cp != '\0')
	{
		deststart = cp;
		while ((*deststart == *srcstart)&&(*deststart != '\0')&&(*srcstart != '\0'))
		{
			deststart++;
			srcstart++;
		}
		if (*srcstart == '\0')
			return cp;
		srcstart = src;
		cp++;
	}
	return NULL;
}


strcmp
int my_strcmp(const char* dest, const char* src)
{
	assert(dest);
	assert(src);
	while ((*dest != '\0') && (*src != '\0') && (*dest == *src))
	{
		dest++;
		src++;
	}
	return *dest - *src;
}


strlen
int my_strlen(const char* dest)
{
	assert(dest);
	int count = 0;
	while (*dest)
	{
		count++;
		dest++;
	}
	return count;
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31401次
    • 积分:1186
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条