收集c语言常用函数

收集c语言常用函数

收集c语言常用函数

1

在平时的开发中有时候会写一些很有趣的函数,所以在这时记录一下。

2 strcasecmp()

2.1 算法:

很简单,先将其转为小写,再进行统一比较。

2.2 代码:


     /* Compare S1 and S2, ignoring case, returning less than, equal to or
       greater than zero if S1 is lexicographically less than,
       equal to or greater than S2.  */
    int
    strcasecmp (const char *s1, const char *s2)
    {
      register const unsigned char *p1 = (const unsigned char *) s1;
      register const unsigned char *p2 = (const unsigned char *) s2;
      unsigned char c1, c2;

      if (p1 == p2)
        return 0;

      do
        {
          c1 = tolower (*p1++);
          c2 = tolower (*p2++);
          if (c1 == '\0')
            break;
        }
      while (c1 == c2);

      return c1 - c2;
    }


    

另外一个strncasecmp():


/* Compare no more than N characters of S1 and S2,
   ignoring case, returning less than, equal to or
   greater than zero if S1 is lexicographically less
   than, equal to or greater than S2.  */
int
strncasecmp (const char *s1, const char *s2, size_t n)
{
  register const unsigned char *p1 = (const unsigned char *) s1;
  register const unsigned char *p2 = (const unsigned char *) s2;
  unsigned char c1, c2;

  if (p1 == p2 || n == 0)
    return 0;

  do
    {
      c1 = tolower (*p1++);
      c2 = tolower (*p2++);
      if (c1 == '\0' || c1 != c2)
        return c1 - c2;
    } while (--n > 0);

  return c1 - c2;
}


Date: 2013-01-16 WED

Author: liweilijie

Org version 7.9.2 with Emacs version 23

Validate XHTML 1.0

posted on 2013-01-16 11:52  liweilijie  阅读(309)  评论(0编辑  收藏  举报

导航