Print all strings according to dictionary order.

For example, to ABC

To print ABC, ACB, BAC, BCA, cab, CBA.

void AA(char* pStr,char* pBegin)
{
    if(*pBegin == '\0') 
        cout << pStr << endl;
    else
    {
        for(char* ptemp = pBegin;*ptemp != '\0';ptemp++)
        {
            if(ptemp != pBegin)
            {
                char a = *ptemp;
                *ptemp = *pBegin;
                *pBegin = a;
            }
            AA(pStr,pBegin+1);
                        if(ptemp != pBegin)
            {
                char a = *ptemp;
                *ptemp = *pBegin;
                *pBegin = a;
            }
        }
    }
}

int main()
{
    char arr1[10] = {"abcd"};
    AA(arr1,arr1);

    return 0;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *