⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strccmp.c

📁 Netscape NSPR库源码
💻 C
字号:
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- *//*  * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ *  * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. *  * The Original Code is the Netscape Portable Runtime (NSPR). *  * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are  * Copyright (C) 1998-2000 Netscape Communications Corporation.  All * Rights Reserved. *  * Contributor(s): *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL"), in which case the provisions of the GPL are applicable  * instead of those above.  If you wish to allow use of your  * version of this file only under the terms of the GPL and not to * allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by * the GPL.  If you do not delete the provisions above, a recipient * may use your version of this file under either the MPL or the * GPL. */#include "plstr.h"static const unsigned char uc[] ={    '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',    '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',    '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',    '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',    ' ',    '!',    '"',    '#',    '$',    '%',    '&',    '\'',    '(',    ')',    '*',    '+',    ',',    '-',    '.',    '/',    '0',    '1',    '2',    '3',    '4',    '5',    '6',    '7',    '8',    '9',    ':',    ';',    '<',    '=',    '>',    '?',    '@',    'A',    'B',    'C',    'D',    'E',    'F',    'G',    'H',    'I',    'J',    'K',    'L',    'M',    'N',    'O',    'P',    'Q',    'R',    'S',    'T',    'U',    'V',    'W',    'X',    'Y',    'Z',    '[',    '\\',   ']',    '^',    '_',    '`',    'A',    'B',    'C',    'D',    'E',    'F',    'G',    'H',    'I',    'J',    'K',    'L',    'M',    'N',    'O',    'P',    'Q',    'R',    'S',    'T',    'U',    'V',    'W',    'X',    'Y',    'Z',    '{',    '|',    '}',    '~',    '\177',    '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',    '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',    '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',    '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',    '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',    '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',    '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',    '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',    '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',    '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',    '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',    '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',    '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',    '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',    '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',    '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'};PR_IMPLEMENT(PRIntn)PL_strcasecmp(const char *a, const char *b){    const unsigned char *ua = (const unsigned char *)a;    const unsigned char *ub = (const unsigned char *)b;    if( ((const char *)0 == a) || (const char *)0 == b )         return (PRIntn)(a-b);    while( (uc[*ua] == uc[*ub]) && ('\0' != *a) )    {        a++;        ua++;        ub++;    }    return (PRIntn)(uc[*ua] - uc[*ub]);}PR_IMPLEMENT(PRIntn)PL_strncasecmp(const char *a, const char *b, PRUint32 max){    const unsigned char *ua = (const unsigned char *)a;    const unsigned char *ub = (const unsigned char *)b;    if( ((const char *)0 == a) || (const char *)0 == b )         return (PRIntn)(a-b);    while( max && (uc[*ua] == uc[*ub]) && ('\0' != *a) )    {        a++;        ua++;        ub++;        max--;    }    if( 0 == max ) return (PRIntn)0;    return (PRIntn)(uc[*ua] - uc[*ub]);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -