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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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