Comment puis-je trouver toutes les permutations d'une chaîne sans utiliser la récursivité?

Quelqu'un peut m'aider avec ceci: C'est un programme pour trouver toutes les permutations d'une chaîne de caractères de longueur quelconque. Besoin d'un non-récursive forme de la même. ( C langage de mise en œuvre de préférence)

using namespace std;

string swtch(string topermute, int x, int y)
{
  string newstring = topermute;
  newstring[x] = newstring[y];
  newstring[y] = topermute[x]; //avoids temp variable
  return newstring;
}

void permute(string topermute, int place)
{
  if(place == topermute.length() - 1)
  {
    cout<<topermute<<endl;
  }
  for(int nextchar = place; nextchar < topermute.length(); nextchar++)
  {
    permute(swtch(topermute, place, nextchar),place+1);
  }
}

int main(int argc, char* argv[])
{    
  if(argc!=2)    
  {
    cout<<"Proper input is 'permute string'";
    return 1;
  }
  permute(argv[1], 0);
  return 0;    
}
Ce n'est pas un langage "C" solution - vous êtes à l'aide d'un type de chaîne, le cout, la surcharge d'opérateur... Ce ne pouvait pas être plus du C++ si elle a été écrite par Stroustrup lui-même.
Vous êtes de droite. [c] de la balise supprimés pour économiser de l'éditer.
J'étais allusion au fait que je voulais un C mise en œuvre de ce code C++

OriginalL'auteur Shrinidhi | 2009-08-25