欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

随笔

程序员文章站 2022-08-02 16:01:14
C语言尝试编写实现部分内置简单函数。 /*负数利用反码取反求绝对值*/int my_abs(int n){ if(n<0) { return ~(n-1); } else { return n; }} /*利用地址长度求字符串长度*/int my_strlen(char *str){ char *p ......

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;
  }  
}