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

📄 string.c

📁 Wine-20031016
💻 C
📖 第 1 页 / 共 4 页
字号:
    { "\03575",                0   }, /* not whitespace char 29 */    { "\03676",                0   }, /* not whitespace char 30 */    { "\03777",                0   }, /* not whitespace char 31 */    { "\04080",               80   }, /*  is whitespace char 32 (space) */    { " \n \r \t214",        214   },    { " \n \r \t+214",       214   }, /* Signs can be used after whitespace */    { " \n \r \t-214",      -214   },    { "+214 0",              214   }, /* Space terminates the number */    { " 214.01",             214   }, /* Decimal point not accepted */    { " 214,01",             214   }, /* Decimal comma not accepted */    { "f81",                   0   },    { "0x12345",               0   }, /* Hex not accepted */    { "00x12345",              0   },    { "0xx12345",              0   },    { "1x34",                  1   },    { "-9999999999", -1410065407   }, /* Big negative integer */    { "-2147483649",  2147483647   }, /* Too small to fit in 32 Bits */    { "-2147483648",  0x80000000   }, /* Smallest negative integer */    { "-2147483647", -2147483647   },    { "-1",                   -1   },    { "0",                     0   },    { "1",                     1   },    { "2147483646",   2147483646   },    { "2147483647",   2147483647   }, /* Largest signed positive integer */    { "2147483648",   2147483648UL }, /* Positive int equal to smallest negative int */    { "2147483649",   2147483649UL },    { "4294967294",   4294967294UL },    { "4294967295",   4294967295UL }, /* Largest unsigned integer */    { "4294967296",            0   }, /* Too big to fit in 32 Bits */    { "9999999999",   1410065407   }, /* Big positive integer */    { "056789",            56789   }, /* Leading zero and still decimal */    { "b1011101100",           0   }, /* Binary (b-notation) */    { "-b1011101100",          0   }, /* Negative Binary (b-notation) */    { "b10123456789",          0   }, /* Binary with nonbinary digits (2-9) */    { "0b1011101100",          0   }, /* Binary (0b-notation) */    { "-0b1011101100",         0   }, /* Negative binary (0b-notation) */    { "0b10123456789",         0   }, /* Binary with nonbinary digits (2-9) */    { "-0b10123456789",        0   }, /* Negative binary with nonbinary digits (2-9) */    { "0b1",                   0   }, /* one digit binary */    { "0b2",                   0   }, /* empty binary */    { "0b",                    0   }, /* empty binary */    { "o1234567",              0   }, /* Octal (o-notation) */    { "-o1234567",             0   }, /* Negative Octal (o-notation) */    { "o56789",                0   }, /* Octal with nonoctal digits (8 and 9) */    { "0o1234567",             0   }, /* Octal (0o-notation) */    { "-0o1234567",            0   }, /* Negative octal (0o-notation) */    { "0o56789",               0   }, /* Octal with nonoctal digits (8 and 9) */    { "-0o56789",              0   }, /* Negative octal with nonoctal digits (8 and 9) */    { "0o7",                   0   }, /* one digit octal */    { "0o8",                   0   }, /* empty octal */    { "0o",                    0   }, /* empty octal */    { "0d1011101100",          0   }, /* explizit decimal with 0d */    { "x89abcdef",             0   }, /* Hex with lower case digits a-f (x-notation) */    { "xFEDCBA00",             0   }, /* Hex with upper case digits A-F (x-notation) */    { "-xFEDCBA00",            0   }, /* Negative Hexadecimal (x-notation) */    { "0x89abcdef",            0   }, /* Hex with lower case digits a-f (0x-notation) */    { "0xFEDCBA00",            0   }, /* Hex with upper case digits A-F (0x-notation) */    { "-0xFEDCBA00",           0   }, /* Negative Hexadecimal (0x-notation) */    { "0xabcdefgh",            0   }, /* Hex with illegal lower case digits (g-z) */    { "0xABCDEFGH",            0   }, /* Hex with illegal upper case digits (G-Z) */    { "0xF",                   0   }, /* one digit hexadecimal */    { "0xG",                   0   }, /* empty hexadecimal */    { "0x",                    0   }, /* empty hexadecimal */    { "",                      0   }, /* empty string *//*  { NULL,                    0   }, */ /* NULL as string */};#define NB_STR2LONG (sizeof(str2long)/sizeof(*str2long))static void test_wtoi(void){    int test_num;    UNICODE_STRING uni;    int result;    for (test_num = 0; test_num < NB_STR2LONG; test_num++) {	pRtlCreateUnicodeStringFromAsciiz(&uni, str2long[test_num].str);	result = p_wtoi(uni.Buffer);	ok(result == str2long[test_num].value,	   "(test %d): call failed: _wtoi(\"%s\") has result %d, expected: %ld",	   test_num, str2long[test_num].str, result, str2long[test_num].value);	pRtlFreeUnicodeString(&uni);    } /* for */}static void test_wtol(void){    int test_num;    UNICODE_STRING uni;    LONG result;    for (test_num = 0; test_num < NB_STR2LONG; test_num++) {	pRtlCreateUnicodeStringFromAsciiz(&uni, str2long[test_num].str);	result = p_wtol(uni.Buffer);	ok(result == str2long[test_num].value,	   "(test %d): call failed: _wtol(\"%s\") has result %ld, expected: %ld",	   test_num, str2long[test_num].str, result, str2long[test_num].value);	pRtlFreeUnicodeString(&uni);    } /* for */}typedef struct {    const char *str;    LONGLONG value;} str2longlong_t;static const str2longlong_t str2longlong[] = {    { "1011101100",   1011101100   },    { "1234567",         1234567   },    { "-214",               -214   },    { "+214",                214   }, /* The + sign is allowed also */    { "--214",                 0   }, /* Do not accept more than one sign */    { "-+214",                 0   },    { "++214",                 0   },    { "+-214",                 0   },    { "\00141",                0   }, /* not whitespace char  1 */    { "\00242",                0   }, /* not whitespace char  2 */    { "\00343",                0   }, /* not whitespace char  3 */    { "\00444",                0   }, /* not whitespace char  4 */    { "\00545",                0   }, /* not whitespace char  5 */    { "\00646",                0   }, /* not whitespace char  6 */    { "\00747",                0   }, /* not whitespace char  7 */    { "\01050",                0   }, /* not whitespace char  8 */    { "\01151",               51   }, /*  is whitespace char  9 (tab) */    { "\01252",               52   }, /*  is whitespace char 10 (lf) */    { "\01353",               53   }, /*  is whitespace char 11 (vt) */    { "\01454",               54   }, /*  is whitespace char 12 (ff) */    { "\01555",               55   }, /*  is whitespace char 13 (cr) */    { "\01656",                0   }, /* not whitespace char 14 */    { "\01757",                0   }, /* not whitespace char 15 */    { "\02060",                0   }, /* not whitespace char 16 */    { "\02161",                0   }, /* not whitespace char 17 */    { "\02262",                0   }, /* not whitespace char 18 */    { "\02363",                0   }, /* not whitespace char 19 */    { "\02464",                0   }, /* not whitespace char 20 */    { "\02565",                0   }, /* not whitespace char 21 */    { "\02666",                0   }, /* not whitespace char 22 */    { "\02767",                0   }, /* not whitespace char 23 */    { "\03070",                0   }, /* not whitespace char 24 */    { "\03171",                0   }, /* not whitespace char 25 */    { "\03272",                0   }, /* not whitespace char 26 */    { "\03373",                0   }, /* not whitespace char 27 */    { "\03474",                0   }, /* not whitespace char 28 */    { "\03575",                0   }, /* not whitespace char 29 */    { "\03676",                0   }, /* not whitespace char 30 */    { "\03777",                0   }, /* not whitespace char 31 */    { "\04080",               80   }, /*  is whitespace char 32 (space) */    { " \n \r \t214",        214   },    { " \n \r \t+214",       214   }, /* Signs can be used after whitespace */    { " \n \r \t-214",      -214   },    { "+214 0",              214   }, /* Space terminates the number */    { " 214.01",             214   }, /* Decimal point not accepted */    { " 214,01",             214   }, /* Decimal comma not accepted */    { "f81",                   0   },    { "0x12345",               0   }, /* Hex not accepted */    { "00x12345",              0   },    { "0xx12345",              0   },    { "1x34",                  1   },    { "-99999999999999999999", -ULL(0x6bc75e2d,0x630fffff) }, /* Big negative integer */    { "-9223372036854775809",   ULL(0x7fffffff,0xffffffff) }, /* Too small to fit in 64 bits */    { "-9223372036854775808",   ULL(0x80000000,0x00000000) }, /* Smallest negative 64 bit integer */    { "-9223372036854775807",  -ULL(0x7fffffff,0xffffffff) },    { "-9999999999",           -ULL(0x00000002,0x540be3ff) },    { "-2147483649",           -ULL(0x00000000,0x80000001) }, /* Too small to fit in 32 bits */    { "-2147483648",           -ULL(0x00000000,0x80000000) }, /* Smallest 32 bits negative integer */    { "-2147483647",                           -2147483647 },    { "-1",                                             -1 },    { "0",                                               0 },    { "1",                                               1 },    { "2147483646",                             2147483646 },    { "2147483647",                             2147483647 }, /* Largest signed positive 32 bit integer */    { "2147483648",             ULL(0x00000000,0x80000000) }, /* Pos int equal to smallest neg 32 bit int */    { "2147483649",             ULL(0x00000000,0x80000001) },    { "4294967294",             ULL(0x00000000,0xfffffffe) },    { "4294967295",             ULL(0x00000000,0xffffffff) }, /* Largest unsigned 32 bit integer */    { "4294967296",             ULL(0x00000001,0x00000000) }, /* Too big to fit in 32 Bits */    { "9999999999",             ULL(0x00000002,0x540be3ff) },    { "9223372036854775806",    ULL(0x7fffffff,0xfffffffe) },    { "9223372036854775807",    ULL(0x7fffffff,0xffffffff) }, /* Largest signed positive 64 bit integer */    { "9223372036854775808",    ULL(0x80000000,0x00000000) }, /* Pos int equal to smallest neg 64 bit int */    { "9223372036854775809",    ULL(0x80000000,0x00000001) },    { "18446744073709551614",   ULL(0xffffffff,0xfffffffe) },    { "18446744073709551615",   ULL(0xffffffff,0xffffffff) }, /* Largest unsigned 64 bit integer */    { "18446744073709551616",                            0 }, /* Too big to fit in 64 bits */    { "99999999999999999999",   ULL(0x6bc75e2d,0x630fffff) }, /* Big positive integer */    { "056789",            56789   }, /* Leading zero and still decimal */    { "b1011101100",           0   }, /* Binary (b-notation) */    { "-b1011101100",          0   }, /* Negative Binary (b-notation) */    { "b10123456789",          0   }, /* Binary with nonbinary digits (2-9) */    { "0b1011101100",          0   }, /* Binary (0b-notation) */    { "-0b1011101100",         0   }, /* Negative binary (0b-notation) */    { "0b10123456789",         0   }, /* Binary with nonbinary digits (2-9) */    { "-0b10123456789",        0   }, /* Negative binary with nonbinary digits (2-9) */    { "0b1",                   0   }, /* one digit binary */    { "0b2",                   0   }, /* empty binary */    { "0b",                    0   }, /* empty binary */    { "o1234567",              0   }, /* Octal (o-notation) */    { "-o1234567",             0   }, /* Negative Octal (o-notation) */    { "o56789",                0   }, /* Octal with nonoctal digits (8 and 9) */    { "0o1234567",             0   }, /* Octal (0o-notation) */    { "-0o1234567",            0   }, /* Negative octal (0o-notation) */    { "0o56789",               0   }, /* Octal with nonoctal digits (8 and 9) */    { "-0o56789",              0   }, /* Negative octal with nonoctal digits (8 and 9) */    { "0o7",                   0   }, /* one digit octal */    { "0o8",                   0   }, /* empty octal */    { "0o",                    0   }, /* empty octal */    { "0d1011101100",          0   }, /* explizit decimal with 0d */    { "x89abcdef",             0   }, /* Hex with lower case digits a-f (x-notation) */    { "xFEDCBA00",             0   }, /* Hex with upper case digits A-F (x-notation) */    { "-xFEDCBA00",            0   }, /* Negative Hexadecimal (x-notation) */    { "0x89abcdef",            0   }, /* Hex with lower case digits a-f (0x-notation) */    { "0xFEDCBA00",            0   }, /* Hex with upper case digits A-F (0x-notation) */    { "-0xFEDCBA00",           0   }, /* Negative Hexadecimal (0x-notation) */    { "0xabcdefgh",            0   }, /* Hex with illegal lower case digits (g-z) */    { "0xABCDEFGH",            0   }, /* Hex with illegal upper case digits (G-Z) */    { "0xF",                   0   }, /* one digit hexadecimal */    { "0xG",                   0   }, /* empty hexadecimal */    { "0x",                    0   }, /* empty hexadecimal */    { "",                      0   }, /* empty string *//*  { NULL,                    0   }, */ /* NULL as string */};#define NB_STR2LONGLONG (sizeof(str2longlong)/sizeof(*str2longlong))static void test_atoi64(void){    int test_num;    LONGLONG result;    for (test_num = 0; test_num < NB_STR2LONGLONG; test_num++) {	result = p_atoi64(str2longlong[test_num].str);	ok(result == str2longlong[test_num].value,	   "(test %d): call failed: _atoi64(\"%s\") has result %lld, expected: %lld",	   test_num, str2longlong[test_num].str, result, str2longlong[test_num].value);    } /* for */}static void test_wtoi64(void){    int test_num;    UNICODE_STRING uni;    LONGLONG result;    for (test_num = 0; test_num < NB_STR2LONGLONG; test_num++) {	pRtlCreateUnicodeStringFromAsciiz(&uni, str2longlong[test_num].str);	result = p_wtoi64(uni.Buffer);	ok(result == str2longlong[test_num].value,	   "(test %d): call failed: _wtoi64(\"%s\") has result %lld, expected: %lld",	   test_num, str2longlong[test_num].str, result, str2longlong[test_num].value);	pRtlFreeUnicodeString(&uni);    } /* for */}START_TEST(string){    InitFunctionPtrs();    test_ulongtoa();    test_ulonglongtoa();    test_atoi64();    test_ulongtow();    test_ulonglongtow();    test_wtoi();    test_wtol();    test_wtoi64();}

⌨️ 快捷键说明

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