Remplacer dans une string dans Dev-cpp

Résolu
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008 - 9 nov. 2006 à 13:48
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008 - 10 nov. 2006 à 10:42
Bonjour
j'ai une variable char qui contient un chemin d'accès au disque et j'aimerais que quand je fait : ".." sa supprime le dernier dossier rentrer par exemple :
C:\windows\
et que je fais: ".."
cela me donne C:\
Comment faire ?

Sébastien Metthez
www.sebastien-metthez.com

11 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
9 nov. 2006 à 16:23
Voici un bout de code qui, si j'ai bien compris, fait ce que tu veux:

char ch1[MAX_PATH]="C:\\dev\\travail\\rep1";    // Chaine de test
char *p=strrchr(ch1,'\\');     // Recherche du répertoire parent
strcpy(p,"\\rep2");      // Modification du répertoire

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
9 nov. 2006 à 14:01
Salut:

Ton problème est mal exprimé.
Si j'ai bien compris : "Tu veux pour un chemin donné récupérer le nom du lecteur logique."

Si oui procéde comme ça (Sous Visual C++):

const char * path = "C:\\Windows";
char  drive [_MAX_PATH];
char  dir   [_MAX_PATH];
char  fname [_MAX_PATH];
char  ext   [_MAX_PATH];

_splitpath (path, drive, dir, fname, ext);

printf ("votre lecteur logique est %s\n", drive);
0
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008
9 nov. 2006 à 14:06
en fet pas obligatoirement le disque se peut par exemple :
C:\mes docs\mes images\
en
C:\mes docs\
Sébastien Metthez
www.sebastien-metthez.com
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
9 nov. 2006 à 15:07
Salut,
Tu recherche dans ta chaine l'avant dernier caractère '\' (ou le 2e en partant de la fin). Ensuite, ce que tu veux est compris entre le pointeur de début et celui retourner par la recherche.
Regarde du côté de strrchr() en C si tu ne comprend pas...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008
9 nov. 2006 à 15:18
je comprens pas .. dsl

Sébastien Metthez
www.sebastien-metthez.com
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
9 nov. 2006 à 15:51
Regarde la doc de la fonction strrchr()

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008
9 nov. 2006 à 16:02
j ai regardé mais je vois pas a quoi cela me sert parce que je doit remplacer tout un morceau de chaine
en php il y a str_replace cela marche en c??
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
9 nov. 2006 à 16:11
Tu peux, je pense, uitliser les fonctions:
SetCurrentDirectory()  ou  chdir() ...
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
9 nov. 2006 à 16:58
Salut:

Je suis avec "buno" dans le fait qu'il cherche le dernier "\".

char * path = "C:\\Windows\";

// supprimer le '\\' de la fin du path
if (path [strlen (path) - 1] == '\\') {
   
path [strlen (path) - 1] = '\0';


}

// modifier le path
char * p = strrchr (path, "\");
if (p != NULL) {
    path [p-path] = "\0";
}

// ton path est modifié
puts (path);
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
9 nov. 2006 à 17:02
Salut:

Je suis avec "buno" dans le fait qu'il cherche le dernier "\".

char * path = "C:\\Windows\";

// supprimer le '\\' de la fin du path
if (path [strlen (path) - 1] == '\\') {
   
path [strlen (path) - 1] = '\0';


}

// modifier le path
char * p = strrchr (path, "\");
if (p != NULL) {
    //path [p-path] = '\0';
    *p = '\0';
    strcpy (path, "\");
}

// ton path est modifié
puts (path);
0
sebastienmz Messages postés 139 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 23 juin 2008
10 nov. 2006 à 10:42
Merci a tous me m'avoir aidé MERCI !!!!!
0
Rejoignez-nous