Untitled

 avatar
unknown
c_cpp
10 months ago
756 B
1
Indexable
#include <stdio.h>

int w16( wchar_t* str )
{
    if( str[ 0 ] == L'\0' || str[ 1 ] == L'\0' || str[ 2 ] == L'\0' || str[ 3 ] != L'\0' )
    {
        return 0;
    }

    for( int i = 0; i < 3; ++i )
    {
        if( str[ i ] < L'0' || str[ i ] > L'9' )
        {
            return 0;
        }
    }

    return ( str[ 0 ] - L'0' ) * 100 + ( str[ 1 ] - L'0' ) * 10 + ( str[ 2 ] - L'0' );
}

int main()
{
    wchar_t str1[] = L"123";
    wchar_t str2[] = L"12a";
    wchar_t str3[] = L"12";
    wchar_t str4[] = L"abcd";

    wprintf( L"Test 1: %d\n", w16( str1 ) );
    wprintf( L"Test 2: %d\n", w16( str2 ) );
    wprintf( L"Test 3: %d\n", w16( str3 ) );
    wprintf( L"Test 4: %d\n", w16( str4 ) );

    return 0;
}
Editor is loading...
Leave a Comment