実施他の一般的な機能をstrlenを[C]、-C言語シミュレーション言語のstrcpy、STRCAT、

:C言語のライブラリ関数は、ここで私は多くのいくつかの文字列関数のシミュレーションを実現している
、1文字列の長さの関数はstrlenを見つけます

  • 関数のプロトタイプ:unsigned int型はstrlen(constのchar型STR);

2、strcpyの文字列のコピー機能

  • 関数のプロトタイプます。externのchar * strcpyの(CHAR * DEST、CHAR * SRC)

3、strcatの文字列の連結機能

  • 関数のプロトタイプます。char * strcatは(CHAR * strDest、のconstのchar * strScr)

4、はstrstr文字列検索機能

  • 関数のプロトタイプます。char *はstrstr(文字列str、char型の SUBSTR)

5、strcmpの文字列比較関数

  • 関数のプロトタイプ:int型strcmpa(のconstのchar * str1は、constのchar型* STR2)
char* my_strcpy(char* dst, const char* src)  //字符串拷贝
{
	assert(dst&&src);
	while (*src)
	{
		*dst = *src;
		src++;
		dst++;
	}
	*dst='\0';
	return dst;
}
int my_strlen(const char*str)   //求字符串长度
{
	assert(str);
	int sum = 0;
	while (*str++ != '\0')
	{
		sum++;
	}
	return sum;
}

char* my_strcat(char* dst, const char* src) //字符串连接
{
	// hello    worldll
	assert(dst&&src);
	while (*dst != '\0')
	{
		dst++;
	}
	while (*src != '\0')
	{
		*dst++ = *src++;
	}
	*dst = '\0';
	return dst;
}

int my_strcmp(const char* dst, const char* src)   //字符串比较
{
	int len = 0;
	assert(dst&&src);
	while (*dst&&*src && (*dst == *src))
	{
		++dst;
		++src;
	}
	return *dst-*src;
}

char* strstr(const char*dst, const char* src)  //字符串查找
{
	assert(dst&&src);
	while (*dst)
	{
		while ((*dst != *src) && *dst!='\0')
		{
			++dst;
		}
		while (*dst == *src)
		{
			const char *dest = dst;
			const char *srcs = src;
			while (*dest == *srcs)
			{
				++dest;
				++srcs;
			}
			if (*srcs == '\0')
			{
				return (char*)dst;
			}
			else
			{
				dst++;;
			}
		}
	}
}
公開された33元の記事 ウォン称賛13 ビュー1044

おすすめ

転載: blog.csdn.net/Vicky_Cr/article/details/105002205