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

📄 test_yc_dyrscarr.c

📁 一个类STL的多平台可移植的算法容器库,主要用于嵌入式系统编程时的内存管理等方面
💻 C
📖 第 1 页 / 共 2 页
字号:
                dyrscarr_erase_range( &strarr, first, last );
                break;
            }
            case 8:
            {
                size_t index = 0, count = 0;
                printf( "please input insert index:\n" );
                scanf( "%u", &index );
                printf( "please input insert count:\n" );
                scanf( "%u", &count );
                printf( "please input insert string:\n" );
                getchar();
                ncstr_getline( &dstr, '\n' );
                if( false == dyrscarr_insert_value(&strarr, index, &dstr, count) )
                    printf( "return false!\n" );
                else
                    PrintStrArray( &strarr );
                break;
            }
            case 9:
            {
                size_t index = 0, count = 0;
                dyrscarray strarr1;
                dyrscarr_init( &strarr1, sizeof(ncstring),(ylib_fp_oper_t)ncstr_init,
                       (ylib_fp_copy_t)ncstr_init_copy, (ylib_fp_copy_t)ncstr_assign_copy,
                       (ylib_fp_move_t)ncstr_init_move, (ylib_fp_move_t)ncstr_assign_move,
                               DestroyString, pool_alloc, pool_free );
                printf( "please input insert index:\n" );
                scanf( "%u", &index );
                printf( "\n\nplease input insert strings:\n" );
                GetStrings( &strarr1, &dstr );
                printf( "please input insert count:\n" );
                scanf( "%u", &count );
                if( false == dyrscarr_insert_array(&strarr, index, strarr1.m_start,
                                                   count) )
                    printf( "return false!\n" );
                else
                    PrintStrArray( &strarr );
                dyrscarr_destroy( &strarr1 );
                break;
            }
            case 10:
            {
                GetStrings( &strarr, &dstr );
                PrintStrArray( &strarr );
                break;
            }
            case 11:
            {
                size_t len = 0;
                printf( "please input a string:\n" );
                getchar();
                ncstr_getline( &dstr, '\n' );
                printf( "please input new length:\n" );
                scanf( "%u", &len );
                if( false == dyrscarr_resize(&strarr, len, &dstr) )
                    printf( "return false!" );
                else
                    PrintStrArray( &strarr );
                break;
            }
            case 12:
            {
                size_t index = 0, old_count = 0, new_count = 0;
                printf( "please input replace index:\n" );
                scanf( "%u", &index );
                printf( "please input replace string:\n" );
                getchar();
                ncstr_getline( &dstr, '\n' );
                printf( "please input old count:\n" );
                scanf( "%u", &old_count );
                printf( "please input new count:\n" );
                scanf( "%u", &new_count );
                if( false == dyrscarr_replace_fill( &strarr, index, old_count,
                                                    &dstr, new_count ) )
                    printf( "return false!\n" );
                else
                    PrintStrArray( &strarr );
                break;
            }
            case 13:
            {
                size_t index = 0, old_count = 0, new_count = 0;
                dyrscarray strarr1;
                dyrscarr_init( &strarr1, sizeof(ncstring), (ylib_fp_oper_t)ncstr_init,
                       (ylib_fp_copy_t)ncstr_init_copy, (ylib_fp_copy_t)ncstr_assign_copy,
                       (ylib_fp_move_t)ncstr_init_move, (ylib_fp_move_t)ncstr_assign_move,
                               DestroyString, pool_alloc, pool_free );
                printf( "please input replace index:\n" );
                scanf( "%u", &index );
                printf( "\n\nplease input replace strings:\n" );
                GetStrings( &strarr1, &dstr );
                printf( "please input old count:\n" );
                scanf( "%u", &old_count );
                printf( "please input new count:\n" );
                scanf( "%u", &new_count );
                if( false == dyrscarr_replace_array( &strarr, index, old_count,
                                                     strarr1.m_start, new_count ) )
                    printf( "return false!\n" );
                else
                    PrintStrArray( &strarr );
                dyrscarr_destroy( &strarr1 );
                break;
            }
            case 14:
            {
                printf( "max size of string array: %u\n", dyrscarr_max_size(&strarr) );
                break;
            }
            case 15:
            {
                printf( "size of string array: %u\n", dyrscarr_size(&strarr) );
                break;
            }
            case 16:
            {
                printf( "capacity of string array: %u\n", dyrscarr_capacity(&strarr) );
                break;
            }
            case 17:
            {
                printf( "space of string array: %u\n", dyrscarr_space(&strarr) );
                break;
            }
            case 18:
            {
                printf( "address of begin: %p\n", dyrscarr_begin(&strarr) );
                break;
            }
            case 19:
            {
                printf( "address of end: %p\n", dyrscarr_end(&strarr) );
                break;
            }
            case 20:
            {
                printf( "front of strings: %s\n",
                        ncstr_to_string( (ncstring*)dyrscarr_front(&strarr) ) );
                break;
            }
            case 21:
            {
                printf( "back of strings: %s\n",
                        ncstr_to_string( (ncstring*)dyrscarr_back(&strarr) ) );
                break;
            }
            case 22:
            {
                size_t index = 0;
                printf( "please input index:\n" );
                scanf( "%u", &index );
                printf( "string[%u]: %s\n", index,
                        ncstr_to_string( (ncstring*)dyrscarr_index(&strarr, index) ) );
                break;
            }
            case 23:
            {
                size_t index = 0;
                ncstring* pstr = NULL;
                printf( "please input index:\n" );
                scanf( "%u", &index );
                if( NULL != (pstr = (ncstring*)dyrscarr_at(&strarr, index)) )
                    printf( "string[%u]: %s\n", index, ncstr_to_string(pstr) );
                else
                    printf( "out of range!\n" );
                break;
            }
            case 24:
            {
                dyrscarr_pop_back( &strarr );
                PrintStrArray( &strarr );
                break;
            }
            case 25:
            {
                dyrscarr_reverse( &strarr );
                PrintStrArray( &strarr );
                break;
            }
            case 26:
            {
                quicksort( dyrscarr_begin(&strarr), dyrscarr_size(&strarr),
                           sizeof(ncstring), (ylib_fp_cmp_t)cmp_ncstring,
                           (ylib_fp_move_t)ncstr_assign_move );
            }
            case 27:
            {
                PrintStrArray( &strarr );
            }
            default:
                break;
        }

        printf( "\npress any key to continue\n" );
        getchar();
        getchar();
    }


EXIT:
    printf( "destroy dyrscarray:\n" );
    dyrscarr_destroy( &strarr );
    ncstr_destroy( &dstr );
    printf( "\n\n\n" );
}

⌨️ 快捷键说明

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