[C++] Program do zmiany nazw katalogów


(Kukicola) #1

Piszę program który zmienia nazwy katalogów z formatu 12-12-12_3232332233223cos4334348 do cos_12-12-12. Program działa lecz nie zmienia polskich nazw folderów. Oto kod:

#include 

#include 

#include 


using namespace std;


int main()

{

    int p,k;

    char kat[100];

    char out[100];

    char zap[300];

    char data[10];

    system("dir /b > dir.txt");

    FILE * katalogi;

    katalogi=fopen ("dir.txt","r");

    while(!feof(katalogi)) {

                fscanf(katalogi,"%s",kat);

                if(!(kat[0]>='0' && kat[0]<='9')) continue;

                p=0;

                for(int i=0; i<8;i++) {

                        data[i]=kat[i];

                        }

                for(int i=0; i
                        if(((kat[i]>='A' && kat[i]<='Z') || (kat[i]>='a' && kat[i]<='z')) || kat[i]=='.') {

                                        out[p]=kat[i];

                                        p++;

                                        }

                        }

                for(int i=0;i<300;i++) zap[i]=0; 

                zap[0]='r';

                zap[1]='e';

                zap[2]='n';

                zap[3]='a';

                zap[4]='m';

                zap[5]='e';

                zap[6]=' ';

                k=7;

                for(int i=0; i
                        zap[k]=kat[i];

                        k++;

                        }

                zap[k]=' ';

                k++;

                for(int i=0; i

                        zap[k]=out[i];

                        k++; }

                zap[k]='_';

                k++;

                for(int i=0; i<8;i++) {

                        zap[k]=data[i];

                        k++; }

                printf("\n%s\n",zap);  

                system(zap);                

                }

    getch();

    return 0;

}

Co powinienem zmienić aby ten program działał prawidłowo?


(Sawyer47) #2

Skoro piszesz w C++, to możesz chyba skorzystać z dobrodziejstw string i iostream? To uprościło by kod.

Co do zmiany nazwy to może prościej będzie usunąć zbędne znaki niż kopiować te, które mają zostać? (opierając się na "12-12-12_3232332233223cos4334348 do cos_12-12-12" - z tego co widzę, to usuwasz tylko cyfry po 9 znaku)