不看会后悔的!!!
自定义实现:strlen,strcpy,strcmp,strcat函数
1.实现strlen()函数:
unsigned int doStrlen(char* v_pStr)
{
unsigned int iCount = 0;
if(v_pStr == NULL)
{
printf("error\n");
}
while(*v_pStr++ != '\0')
{
iCount++;
}
return iCount;
}
2.实现strcpy()函数:
char* doStrcpy(char *a,char* b)
{
char* straddr = a;
assert((a!=NULL)&&(b!=NULL));
while((*a++ == *b++) != '\0');
return straddr;
}
3.实现strcmp()函数:
int my_strcmp( const char *dst, const char *scr )
{
assert(dst);
assert(scr);
while( '\0' != *dst && '\0' != *scr )
{
if( *dst == *scr )
{
dst++;
scr++;
}
else if(*dst > *scr)
{
return 1;
}
else
{
return -1;
}
}
if( *dst != '\0' && *scr == '\0')
{
return 1;
}
if( *dst == '\0' && *scr != '\0')
{
return -1;
}
return 0;
}
4.实现strcat()函数:
void doStrcat(char* v_pStr,char* v_pstrCat)
{
assert((v_pStr !=NULL) && (v_pstrCat!= NULL));
while(*v_pStr!= '\0')
{
v_pStr++;
}
while(*v_pstrCat != '\0')
{
*v_pStr++ = *v_pstrCat++;
}
*v_pStr = '\0';
}