Random String Generator

For a verification Key I needed a random string, which I was implementing like this:
// iType:   0 -> all syblos allowed
//          1 -> alphanumeric
//          2 -> alpha
//          3 -> numeric
CString RandomString( int iLength, int iType )
{
    CString strReturn;
    CString strLocal;

    for( int i = 0 ; i < iLength ; ++i )
    {
        int iNumber;

        // Seed the random-number generator with TickCount so that
        // the numbers will be different every time we run.
        srand( (unsigned int)( (i+1)*iLength*GetTickCount() ) );

        switch( iType )
        {
            case 1:
                iNumber = rand()%122;
                if( 48 > iNumber )
                    iNumber += 48;
                if( ( 57 < iNumber ) &&
                    ( 65 > iNumber ) )
                    iNumber += 7;
                if( ( 90 < iNumber ) &&
                    ( 97 > iNumber ) )
                    iNumber += 6;
                strReturn += (char)iNumber;
                break;
            case 2:
                iNumber = rand()%122;
                if( 65 > iNumber )
                    iNumber = 65 + iNumber%56;
                if( ( 90 < iNumber ) &&
                    ( 97 > iNumber ) )
                    iNumber += 6;
                strReturn += (char)iNumber;
                break;
            case 3:
                strLocal.Format("%i", rand()%9 );
                strReturn += strLocal;
                break;
            default:
                strReturn += (char)rand();
                break;
        }
    }

    return strReturn;
}

Bugs and Improvements:

Please report all bugs and improvements to me, thanks and enjoy it.

Last updated: 12 June 1998




Comments

  • Thank you

    Posted by rm_pkt on 03/27/2006 05:57am

    Nice code. I really enjoyed it

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Like many roles in the C-Suite, the CIO role is also changing. Its impact and control have been circumvented by cloud computing, the consumerization of IT, and employees that now have unprecedented access to technology. The role of the CIO is at a critical juncture. For some CIOs, the changing landscape reduces their scope of influence. For others, it means unprecedented opportunity. This eBook explores the changes that CIOs are experiencing today and how these executives can leverage their expertise to help …

  • On-demand Event Event Date: May 16, 2017 Developers who use popular JavaScript frameworks like React to build user interfaces often have to create components to build the interface. Building components is time consuming, has integration and maintenance risks, and worst of all, distracts them from the task at hand — actually building the app. Watch this webinar to see how to quickly and easily add more than 115 professionally supported and tested components from Sencha to your React apps. In this …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date