Detecter antislash en C

Fermé
Yelle - 24 mai 2010 à 02:08
 Yelle - 24 mai 2010 à 22:22
Bonjour,

Je réalise un petit programme qui ouvre des fichiers. L'utilisateur saisit une chaine de char qui est l'adresse windows de l'image, qui est ensuite ouverte. Je veux donc doubler tous les '\' pour pouvoir utiliser fopen.

Mon problème est que je n'arrive pas à détecter les anti-slash dans ma chaine. Est-ce possible?


void dbleslash(char *s1)
{
    int i,j;
    char s2[100];

    for(i=0,j=0;s1[j]!='\0';i++,j++)
    {
        s2[i]=s1[j];
        if(!strncmp(s1,"\\",1)){
            i++;
            s2[i]='\\';
        }
    }
    s2[i]='\0';
    strcpy(s1,s2);
}


char s1[100]="test\char";
dbleslash(s1);
printf("%s",s1);

=>strchar


Merci d'avance à ceux qui pourront m'aider.

1 réponse

SchSoftware Messages postés 46 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 17 avril 2011 3
24 mai 2010 à 15:23
Bonjours

Peu être ai-je mal compris l'énoncer mais si l'utilisateur entre le chemin de votre fichier alors vous n'avez pas à vous soucier de doubler les "\", ceci est fait automatiquement lorsque vous récupérez la chaine...

char chFilePath[255];
gets(chFilePath);
// sauf erreur de frappe, "chFilePath" EST un chemin valid!
FILE *file = fopen(chFilePath, "r");
if(file != NULL)
fclose(file);
else
printf("Erreur lors de l\'ouverture du fichier\n");


Bien à vous.
1
En effet, cela semble marcher. Merci de votre aide.
0