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

📄 test_yc_dymemarr.c

📁 一个类STL的多平台可移植的算法容器库,主要用于嵌入式系统编程时的内存管理等方面
💻 C
📖 第 1 页 / 共 2 页
字号:
            }
            case 8:
            {
                size_t index = 0, count = 0;
                char c[8] = {0};
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input insert index:\n" );
                scanf( "%u", &index );
                printf( "please input a character:\n" );
                scanf( "%s", c );
                printf( "please input insert count:\n" );
                scanf( "%u", &count );
                if( false == dymemarr_insert_value(&dstr, index, c, count) )
                    printf( "return false!\n" );
                else
                    printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 9:
            {
                size_t index = 0, count = 0;
                char str[128] = {0};
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input a string:\n" );
                scanf( "%s", str );
                printf( "please input insert index:\n" );
                scanf( "%u", &index );
                printf( "please input insert count:\n" );
                scanf( "%u", &count );
                if( false == dymemarr_insert_array(&dstr, index, str, count) )
                    printf( "return false!\n" );
                else
                    printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 10:
            {
                char c[8] = {0};
                while( 1 )
                {
                    printf( "\nplease input a character, input '0' to exit:\n" );
                    scanf( "%s", c );
                    if( '0' == c[0] )
                        break;
/*                    DYMEMARR_PUSH_BACK( dstr, c[0], char );
*/                    if( false == dymemarr_push_back(&dstr, c) )
                        printf( "return false!\n" );
                }
                break;
            }
            case 11:
            {
                size_t len = 0;
                char c[8] = {0};
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input new length:\n" );
                scanf( "%u", &len );
                printf( "please input a character:\n" );
                scanf( "%s", c );
                if( false == dymemarr_resize(&dstr, len, c) )
                    printf( "return false!\n" );
                else
                    printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 12:
            {
                size_t index = 0, old_count = 0, new_count = 0;
                char c[8] = {0};
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input replace index:\n" );
                scanf( "%u", &index );
                printf( "please input a character:\n" );
                scanf( "%s", c );
                printf( "please input old count:\n" );
                scanf( "%u", &old_count );
                printf( "please input new count:\n" );
                scanf( "%u", &new_count );
                if( false == dymemarr_replace_fill( &dstr, index, old_count,
                                                    c, new_count ) )
                    printf( "return false!\n" );
                else
                    printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 13:
            {
                size_t index = 0, old_count = 0, new_count = 0;
                char str[128] = {0};
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input replace index:\n" );
                scanf( "%u", &index );
                printf( "please input a string:\n" );
                scanf( "%s", str );
                printf( "please input old count:\n" );
                scanf( "%u", &old_count );
                printf( "please input new count:\n" );
                scanf( "%u", &new_count );
                if( false == dymemarr_replace_array( &dstr, index, old_count,
                                                     str, new_count ) )
                    printf( "return false!\n" );
                else
                    printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 14:
            {
                printf( "max size of string: %u\n", dymemarr_max_size(&dstr) );
                break;
            }
            case 15:
            {
                printf( "size of string: %u\n", dymemarr_size(&dstr) );
                break;
            }
            case 16:
            {
                printf( "capacity of string: %u\n", dymemarr_capacity(&dstr) );
                break;
            }
            case 17:
            {
                printf( "space of string: %u\n", dymemarr_space(&dstr) );
                break;
            }
            case 18:
            {
                printf( "address of begin: %p\n", dymemarr_begin(&dstr) );
                break;
            }
            case 19:
            {
                printf( "address of end: %p\n", dymemarr_end(&dstr) );
                break;
            }
            case 20:
            {
                printf( "front of string: %c\n", *((char*)dymemarr_front(&dstr)) );
                break;
            }
            case 21:
            {
                printf( "back of string: %c\n", *((char*)dymemarr_back(&dstr)) );
                break;
            }
            case 22:
            {
                size_t index = 0;
                printf( "string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input index:\n" );
                scanf( "%u", &index );
                printf( "string[%u]: %c\n", index,
                        *((char*)dymemarr_index(&dstr, index)) );
                break;
            }
            case 23:
            {
                size_t index = 0;
                char* pc = NULL;
                printf( "string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                printf( "please input index:\n" );
                scanf( "%u", &index );
                if( NULL != (pc = (char*)dymemarr_at(&dstr, index)) )
                    printf( "string[%u]: %c\n", index, *pc );
                else
                    printf( "out of range!\n" );
                break;
            }
            case 24:
            {
                printf( "before string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                dymemarr_pop_back( &dstr );
                printf( "after string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
                break;
            }
            case 25:
            {
                printf( "string: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
            }
            default:
                break;
        }

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

EXIT:
    printf( "destroy dymemarray: %s\n", (char*)dymemarr_to_string(&dstr, NULL) );
    dymemarr_destroy( &dstr );
    printf( "\n\n\n" );
}

⌨️ 快捷键说明

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