Тема: Генератор імен для сайту

Мені треба зробити генератор імен, типу
aaaab
aaaac
aaaad
для сторінок html. ну типу згенерувати і одразу записати.

#include <iostream>
#include <windows.h>
using namespace std;
void ren(char* FileName, char* NewFileName)
{
   char* Comm="ren ";
   strcat(Comm, FileName);
   strcat(Comm, " ");
   strcat(Comm, NewFileName);
   strcat(Comm, ".html");
   const char* ConstComm=Comm;
   system(ConstComm);
}
char** dir_b(int col)
{
   system("dir /b> dir.txt");
   ifstream file("dir.txt");
   char* Buff[col];
   for (int i=0; i<col; i++) file >> Buff[col];
   return Buff;
}
int main()
{
   char** Buff=dir_b(100);//кількість файлів
   char* mass="abcdefghijklmnopqrstuvwxyz";
   int str=strlen(mass);
   char* FileName=new char[256];
   char* NewFileName=new char[256];
   int count=0;
   for (int i=0; i<str; i++) for (int z=0; z<str; z++) for (int y=0; y<str; y++) for (int x=0; x<str; x++) for int f=0; f<str; f++) {
   if (count==99) break;
   wsprintf(FileName, Buff[count]);
   NewFileName[0]=mass[i];
   NewFileName[1]=mass[z];
   NewFileName[2]=mass[y];
   NewFileName[3]=mass[x];
   NewFileName[4]=mass[f];
   ren(FileName, NewFileName);
   count++;
}
return 0;
}

2

Re: Генератор імен для сайту

Типу забув

#include <fstream>

ще

3

Re: Генератор імен для сайту

Якось так

void find_next_word(char *word)
{
    int s = strlen(word);
    for(int i=s-1;i>=0;--i)
    {
        if(++word[i] > 'z')
            word[i]='a';
        else
            break;
    }
}
Подякували: ginderbutters1

4

Re: Генератор імен для сайту

дякую, але я типу мав на увазі чи є щось в стандарті. от мені це колись в 2012 було потрібно я це був знайшов на якомусь форумі, там якоюсь однією командою це все робилося. а зараз навіть не знаю як воно зветься. типу там якось по іншому, задаєш масив напр. "123456" і воно перебирає і виводить всі можливі комбінації. типу чи то математична функція чи що.

5

Re: Генератор імен для сайту

Є next_permutation, але це перестановка (тобто з "abcd" воно робить "abdc", а не "abce").
А ще можна написати перетворення з числа на стрічку:

std::string from_number(int n)
{
    std::deque<char> result;
    constexpr char SYMBOLS[] = "0123456789ABCDEF";//HEX as example
    const int SYMBOLS_LENGTH = strlen(SYMBOLS);
    while(n) {
        result.push_front(SYMBOLS[n%SYMBOLS_LENGTH]);
        n /= SYMBOLS_LENGTH;
    }
    return std::string(result.begin(), result.end());
}

Цей код перетворює число на стрічку із 16-ковим числом; але якщо замінити символи, то буде довільна комбінація.

Подякували: ginderbutters1

6

Re: Генератор імен для сайту

Згадав, дякую! от точно воно, next_permutation