petit soucis de traitement sur les chaines de caracteres.
Bonjour,
j'ai ecris une petite fonction qui me permet de modifier une chaine de caractere. Cette chaine est un chemin (ex: C:\unRepertoire ), et la fonction me renvoi le repertoire courant ( dans ce cas: C: enfin dans la theorie).
Helas, ma fonction ne fonctionne que dans un cas.. mais je ne comprend pas pourquoi :/
je vous montre mon code..
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include<iostream>
using namespace std;
void cdup(char* path){
char *tmp;
int i;
tmp = strrchr(path,'\\');
i = tmp-path;
strncpy(tmp,path,i);
strcpy(path, tmp);
delete tmp;
}
int main (){
char path[MAX_PATH] ="c:\\test\\qwerty";
char path1[MAX_PATH] ="c:\\test";
char path2[MAX_PATH] ="c:\\test\\vfdzgdagf\\qwerrrrrr\\aaaa\\qwwer";
cdup(path);
cdup(path1);
cdup(path2);
cout << "path : " << path << endl;
cout << "path1: " << path1 << endl;
cout << "path2: " << path1 << endl;
system("PAUSE");
return 1;
} |
les resultat:
Code:
1 2 3 4
| path : c:\test
path1: c:est
path2: c:est
Appuyez sur une touche pour continuer... |
Si quelqu'un pouvait m'eclaircir les idees...
Merci :)