How would I modify my code so it only prints combinations with only A as the starting character.
This will print all combinations for all starting characters.
So for an 8 char string it should be. AAAAAAAAA - AZZZZZZZZ
#include <string>
#include <iostream>
void print_str(const char*,std::string,const int, const int);
int main()
{
    int lenght = 2;
    char str[] = {'A', 'B', 'C', 'D'};
    int n = sizeof str;
    print_str(str, "", n, lenght);  //Note: this function works on all cases and not just the case above
    return 0;
}
// The main recursive method to print all possible strings of length "length"
    void print_str(const char str[],std::string prefix,const int n, const int lenght)
    {
        if (lenght == 1)
            {
                for (int j = 0; j < n; j++)
                std::cout << prefix + str[j] << std::endl;
            }//Base case: lenght = 1, print the string "lenght" times + the remaining letter
        else
            {
               // One by one add all characters from "str" and recursively call for "length" equals to "lenght"-1
                for (int i = 0; i < n; i++)
                // Next character of input added
                print_str(str, prefix + str[i], n, lenght - 1);
                // "lenght" is decreased, because we have added a new character
            }
    }
Aucun commentaire:
Enregistrer un commentaire