经常在笔试和面试中,公司会出一些C语言的库函数让面试者去做,这些函数看上去很简单,其实还是要考虑很多的。下面就几个常用的函数做一些简单的实现。
1、字符串复制函数
//字符串赋值函数
char *strcpy( char *strDestination, const char *strSource )
{
//
assert(strDestination != NULL && strSource != NULL);
int i = 0;
while (*strSource!= '\0')
{
strDestination[i++] = *strSource++;
}
strDestination[i] = '\0';
return strDestination;
}
2、内存拷贝函数
void *memcpy( void *dest, const void *src, size_t count )
{
assert(dest != NULL && src != NULL);
char *tmp = (char*)dest;
const char *s = (const char*)src;
while (count--)
{
*tmp = *s ;
}
return dest;
}
3、内存设置函数
void *memset1( void *dest, int c, size_t count )
{
assert(dest != NULL);
char* tmp = (char*)dest;
int i = 0;
while (count --)
{
tmp[i++] = c;
}
return dest;
}
4、将一个字符串转换为一个整数
int atoi( const char *string )
{
char *p = (char*)string;
char c;
int i = 0;
while(c = *p++)
{
if(c>='0' && c<='9')
{
i = i*10 + (c-'0');
}
else
return -1; //无效的字符串
}
return i;
}
先就实现这么多。