C言語文字列関数strcpy、strcmp、strcat、strlen、strstrstr

1527 ワード

strcpy    :
char *strcpy(char *des, const char *src)
{
	assert(des != NULL && src != NULL);
	char *pStr = des;
	while( (*des++ = *src++) != '\0')
		NULL;
	return pStr;
}

 
 
 
strcmp   :
int  strcmp(const char *des,  const char *src)
{
	assert(des != NULL && src != NULL);
	for (;*des && *src && *des == *src; des++, src++)
		NULL;

	return *des - *src;
}

 
 
 
strcat   :
char *strcat(char *des, const char *src)
{
	assert(*des != NULL && *src != NULL);
	char *pStr = des;
	while (*des != '\0')
		des++;

	while ((*des++ = *src++) != '\0')
		NULL;
	return pStr;
}

 
strlen   :
int strlen(const char *pStr)
{
	assert(pStr != NULL);
	int len = 0;
	while (*pStr++ != '\0')
		len++;

	return len;
}

 
 
strstr   :
char *myStrstr(const char *des, const char *src)
{
	assert(des != NULL && src != NULL);

	char *d = des;
	char *s = src;

	for (; d != '\0'; des++)
	{
		for (d = des, s = src; (s != '\0') && (*d == *s); d++, s++)
			NULL;
	
	if (*s == '\0')
		return des;
	}
	
	return NULL;

}