随笔
C语言尝试编写实现部分内置简单函数。
/*负数利用反码取反求绝对值*/
int my_abs(int n)
{
if(n<0)
{
return ~(n-1);
}
else
{
return n;
}
}
/*利用地址长度求字符串长度*/
int my_strlen(char *str)
{
char *p=str;
while(*str!='\0')
{
str++;
}
return str-p;
}
/*把字符串str2接到字符串str1后*/
char *my_strcat(char *str1,char *str2)
{
int i,l;
l=strlen(str1);
for(i=l;i<(l+strlen(str2)+1);i++)
{
*(str1+i)=*(str2+i-l);
}
return *str1;
}
/*比较两个字符串str1和str2*/
int my_strcmp(char *str1,char*str2)
{
int i;
if(strlen(str1)==strlen(str2))
{
for(i=0;i<strlen(str1);i++)
{
if(*(str1+i)!=*(str2+i))
{
if(*(str1+i)<*(str2+i))
{
return 1;
break;
}
else
{
return -1;
break;
}
}
}
if(i==strlen(str1))
{
return 0;
}
}
else
{
if(strlen(str1)<strlen(str2))
{
return -1;
}
else
{
return 1;
}
}
}
/*求出不大于x的最大整数*/
double my_floor(double x)
{
if((int)x!=x)
{
return (int)x;
}
else
{
return x-1;
}
}