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

📄 string.c

📁 Netscape NSPR库源码
💻 C
📖 第 1 页 / 共 5 页
字号:
          { (const char *)0, (const char *)0, 1, (const char *)0 },          { (const char *)0, (const char *)0, 7, (const char *)0 },          { (const char *)0, "", 0, (const char *)0 },          { (const char *)0, "", 1, (const char *)0 },          { (const char *)0, "", 7, (const char *)0 },          { (const char *)0, "stuff", 0, (const char *)0 },          { (const char *)0, "stuff", 1, (const char *)0 },          { (const char *)0, "stuff", 7, (const char *)0 },          { "", (const char *)0, 0, "" },          { "", (const char *)0, 1, "" },          { "", (const char *)0, 7, "" },          { "", "", 0, "" },          { "", "", 1, "" },          { "", "", 7, "" },          { "", "abcdefgh", 0, "" },          { "", "abcdefgh", 1, "" },          { "", "abcdefgh", 7, "abcdef" },          { "xyz", (const char *)0, 0, "xyz" },          { "xyz", (const char *)0, 1, "xyz" },          { "xyz", (const char *)0, 7, "xyz" },          { "xyz", "", 0, "xyz" },          { "xyz", "", 1, "xyz" },          { "xyz", "", 7, "xyz" },          { "xyz", "abcdefgh", 0, "xyz" },          { "xyz", "abcdefgh", 1, "xyz" },          { "xyz", "abcdefgh", 7, "xyzabc" }      };    int i;    printf("Test 010 (PL_strcatn)     ..."); fflush(stdout);    for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )    {        char buffer[ 1024 ];        int j;        char *rv;        for( j = 0; j < sizeof(buffer); j++ )            buffer[j] = '-';        if( (const char *)0 != array[i].first )            (void)PL_strcpy(buffer, array[i].first);        rv = PL_strcatn(((const char *)0 == array[i].first) ? (char *)0 : buffer,                        array[i].length, array[i].second);        if( (const char *)0 == array[i].result )        {            if( (char *)0 != rv )            {                printf("FAIL %d: %s+%s/%lu -> %.32s, not zero\n", i,                       array[i].first ? array[i].first : "(null)",                       array[i].second ? array[i].second : "(null)",                       array[i].length, rv);                return PR_FALSE;            }        }        else        {            if( (char *)0 == rv )            {                printf("FAIL %d: %s+%s/%lu -> null, not %s\n", i,                       array[i].first ? array[i].first : "(null)",                       array[i].second ? array[i].second : "(null)",                       array[i].length, array[i].result);                return PR_FALSE;            }            else            {                const char *a = array[i].result;                const char *b = (const char *)rv;                while( 1 )                {                    if( *a != *b )                    {                        printf("FAIL %d: %s+%s/%lu -> %.32s, not %s\n", i,                               array[i].first ? array[i].first : "(null)",                               array[i].second ? array[i].second : "(null)",                               array[i].length, rv, array[i].result);                        return PR_FALSE;                    }                    if( (char)0 == *a ) break;                    a++;                    b++;                }            }        }    }    printf("PASS\n");    return PR_TRUE;}/* PL_strcmp */PRBool test_011(void){    static struct    {        const char *one;        const char *two;        PRIntn      sign;    } array[] =      {          { (const char *)0, (const char *)0, 0 },          { (const char *)0, "word", -1 },          { "word", (const char *)0, 1 },          { "word", "word", 0 },          { "aZYXVUT", "bZYXVUT", -1 },          { "aZYXVUT", "bAAAAAA", -1 },          { "a", "aa", -1 },          { "a", "a", 0 },          { "a", "A", 1 },          { "aaaaa", "baaaa", -1 },          { "aaaaa", "abaaa", -1 },          { "aaaaa", "aabaa", -1 },          { "aaaaa", "aaaba", -1 },          { "aaaaa", "aaaab", -1 },          { "bZYXVUT", "aZYXVUT", 1 },          { "bAAAAAA", "aZYXVUT", 1 },          { "aa", "a", 1 },          { "A", "a", -1 },          { "baaaa", "aaaaa", 1 },          { "abaaa", "aaaaa", 1 },          { "aabaa", "aaaaa", 1 },          { "aaaba", "aaaaa", 1 },          { "aaaab", "aaaaa", 1 },          { "word", "Word", 1 },          { "word", "wOrd", 1 },          { "word", "woRd", 1 },          { "word", "worD", 1 },          { "WORD", "wORD", -1 },          { "WORD", "WoRD", -1 },          { "WORD", "WOrD", -1 },          { "WORD", "WORd", -1 }      };    int i;    printf("Test 011 (PL_strcmp)      ..."); fflush(stdout);    for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )    {        PRIntn rv = PL_strcmp(array[i].one, array[i].two);        switch( array[i].sign )        {            case -1:                if( rv < 0 ) continue;                break;            case 1:                if( rv > 0 ) continue;                break;            case 0:                if( 0 == rv ) continue;                break;            default:                PR_NOT_REACHED("static data inconsistancy");                break;        }        printf("FAIL %d: %s-%s -> %d, not %d\n", i,               array[i].one ? array[i].one : "(null)",               array[i].two ? array[i].two : "(null)",               rv, array[i].sign);        return PR_FALSE;    }    printf("PASS\n");    return PR_TRUE;}/* PL_strncmp */PRBool test_012(void){    static struct    {        const char *one;        const char *two;        PRUint32    max;        PRIntn      sign;    } array[] =      {          { (const char *)0, (const char *)0, 0, 0 },          { (const char *)0, (const char *)0, 1, 0 },          { (const char *)0, (const char *)0, 4, 0 },          { (const char *)0, "word", 0, -1 },          { (const char *)0, "word", 1, -1 },          { (const char *)0, "word", 4, -1 },          { "word", (const char *)0, 0, 1 },          { "word", (const char *)0, 1, 1 },          { "word", (const char *)0, 4, 1 },          { "word", "word", 0, 0 },          { "word", "word", 1, 0 },          { "word", "word", 3, 0 },          { "word", "word", 5, 0 },          { "aZYXVUT", "bZYXVUT", 0, 0 },          { "aZYXVUT", "bZYXVUT", 1, -1 },          { "aZYXVUT", "bZYXVUT", 4, -1 },          { "aZYXVUT", "bZYXVUT", 9, -1 },          { "aZYXVUT", "bAAAAAA", 0, 0 },          { "aZYXVUT", "bAAAAAA", 1, -1 },          { "aZYXVUT", "bAAAAAA", 4, -1 },          { "aZYXVUT", "bAAAAAA", 5, -1 },          { "a", "aa", 0, 0 },          { "a", "aa", 1, 0 },          { "a", "aa", 4, -1 },          { "a", "a", 0, 0 },          { "a", "a", 1, 0 },          { "a", "a", 4, 0 },          { "a", "A", 0, 0 },          { "a", "A", 1, 1 },          { "a", "A", 4, 1 },          { "aaaaa", "baaaa", 0, 0 },          { "aaaaa", "baaaa", 1, -1 },          { "aaaaa", "baaaa", 4, -1 },          { "aaaaa", "abaaa", 0, 0 },          { "aaaaa", "abaaa", 1, 0 },          { "aaaaa", "abaaa", 4, -1 },          { "aaaaa", "aabaa", 0, 0 },          { "aaaaa", "aabaa", 1, 0 },          { "aaaaa", "aabaa", 4, -1 },          { "aaaaa", "aaaba", 0, 0 },          { "aaaaa", "aaaba", 1, 0 },          { "aaaaa", "aaaba", 4, -1 },          { "aaaaa", "aaaab", 0, 0 },          { "aaaaa", "aaaab", 1, 0 },          { "aaaaa", "aaaab", 4, 0 },          { "bZYXVUT", "aZYXVUT", 0, 0 },          { "bZYXVUT", "aZYXVUT", 1, 1 },          { "bZYXVUT", "aZYXVUT", 4, 1 },          { "bAAAAAA", "aZYXVUT", 0, 0 },          { "bAAAAAA", "aZYXVUT", 1, 1 },          { "bAAAAAA", "aZYXVUT", 4, 1 },          { "aa", "a", 0, 0 },          { "aa", "a", 1, 0 },          { "aa", "a", 4, 1 },          { "A", "a", 0, 0 },          { "A", "a", 1, -1 },          { "A", "a", 4, -1 },          { "baaaa", "aaaaa", 0, 0 },          { "baaaa", "aaaaa", 1, 1 },          { "baaaa", "aaaaa", 4, 1 },          { "abaaa", "aaaaa", 0, 0 },          { "abaaa", "aaaaa", 1, 0 },          { "abaaa", "aaaaa", 4, 1 },          { "aabaa", "aaaaa", 0, 0 },          { "aabaa", "aaaaa", 1, 0 },          { "aabaa", "aaaaa", 4, 1 },          { "aaaba", "aaaaa", 0, 0 },          { "aaaba", "aaaaa", 1, 0 },          { "aaaba", "aaaaa", 4, 1 },          { "aaaab", "aaaaa", 0, 0 },          { "aaaab", "aaaaa", 1, 0 },          { "aaaab", "aaaaa", 4, 0 },          { "word", "Word", 0, 0 },          { "word", "Word", 1, 1 },          { "word", "Word", 3, 1 },          { "word", "wOrd", 0, 0 },          { "word", "wOrd", 1, 0 },          { "word", "wOrd", 3, 1 },          { "word", "woRd", 0, 0 },          { "word", "woRd", 1, 0 },          { "word", "woRd", 3, 1 },          { "word", "worD", 0, 0 },          { "word", "worD", 1, 0 },          { "word", "worD", 3, 0 },          { "WORD", "wORD", 0, 0 },          { "WORD", "wORD", 1, -1 },          { "WORD", "wORD", 3, -1 },          { "WORD", "WoRD", 0, 0 },          { "WORD", "WoRD", 1, 0 },          { "WORD", "WoRD", 3, -1 },          { "WORD", "WOrD", 0, 0 },          { "WORD", "WOrD", 1, 0 },          { "WORD", "WOrD", 3, -1 },          { "WORD", "WORd", 0, 0 },          { "WORD", "WORd", 1, 0 },          { "WORD", "WORd", 3, 0 }      };    int i;    printf("Test 012 (PL_strncmp)     ..."); fflush(stdout);    for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )    {        PRIntn rv = PL_strncmp(array[i].one, array[i].two, array[i].max);        switch( array[i].sign )        {            case -1:                if( rv < 0 ) continue;                break;            case 1:                if( rv > 0 ) continue;                break;            case 0:                if( 0 == rv ) continue;                break;            default:                PR_NOT_REACHED("static data inconsistancy");                break;        }        printf("FAIL %d: %s-%s/%ld -> %d, not %d\n", i,               array[i].one ? array[i].one : "(null)",               array[i].two ? array[i].two : "(null)",               array[i].max, rv, array[i].sign);        return PR_FALSE;    }    printf("PASS\n");    return PR_TRUE;}/* PL_strcasecmp */PRBool test_013(void){    static struct    {        const char *one;        const char *two;        PRIntn      sign;    } array[] =      {          { (const char *)0, (const char *)0, 0 },          { (const char *)0, "word", -1 },          { "word", (const char *)0, 1 },          { "word", "word", 0 },          { "aZYXVUT", "bZYXVUT", -1 },          { "aZYXVUT", "bAAAAAA", -1 },          { "a", "aa", -1 },          { "a", "a", 0 },          { "a", "A", 0 },          { "aaaaa", "baaaa", -1 },          { "aaaaa", "abaaa", -1 },          { "aaaaa", "aabaa", -1 },          { "aaaaa", "aaaba", -1 },          { "aaaaa", "aaaab", -1 },          { "bZYXVUT", "aZYXVUT", 1 },          { "bAAAAAA", "aZYXVUT", 1 },          { "aa", "a", 1 },          { "A", "a", 0 },          { "baaaa", "aaaaa", 1 },          { "abaaa", "aaaaa", 1 },          { "aabaa", "aaaaa", 1 },          { "aaaba", "aaaaa", 1 },          { "aaaab", "aaaaa", 1 },          { "word", "Word", 0 },          { "word", "wOrd", 0 },          { "word", "woRd", 0 },          { "word", "worD", 0 },          { "WORD", "wORD", 0 },          { "WORD", "WoRD", 0 },          { "WORD", "WOrD", 0 },          { "WORD", "WORd", 0 }      };    int i;    printf("Test 013 (PL_strcasecmp)  ..."); fflush(stdout);    for( i = 0; i < sizeof(array)/sizeof(array[0]); i++ )    {        PRIntn rv = PL_strcasecmp(array[i].one, array[i].two);        switch( array[i].sign )        {            case -1:                if( rv < 0 ) continue;                break;            case 1:                if( rv > 0 ) continue;                break;            case 0:                if( 0 == rv ) continue;                break;            default:                PR_NOT_REACHED("static data inconsistancy");                break;        }        printf("FAIL %d: %s-%s -> %d, not %d\n", i,               array[i].one ? array[i].one : "(null)",               array[i].two ? array[i].two : "(null)",               rv, array[i].sign);        return PR_FALSE;    }    printf("PASS\n");    return PR_TRUE;}

⌨️ 快捷键说明

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