Si ce petit exemple peut t'aider....
Quand le nom du fichier contient "toto." sur les premiers caractères, le
strncmp retourne 0 (et uniquement dans ce cas).
La chaine de comparaison (ref) peut etre passée en paramètre (c'est
mieux que de coder hard!) pour etre comparée à la chaine contenue dans tab.
Si tu executes l'exemple, tappes tes noms de fichier (pour essayer) et
quite la boucle par q
Patrick
#include<stdio.h>
#include<string.h>
int main()
{
char tab[20];
char ref[]="toto.";
scanf("%s",tab);
while (strlen(tab) !=1 || tab[0]!='q')
{
printf("strcmp(\"%s\",\"%s\") = %d
\n",tab,ref,strncmp(tab,ref,strlen(ref)));
scanf("%s",tab);
}
return 0;
}
anne aublanc wrote:
> bonjour,
>
> C'est quand même pour mon linux préféré! ;o))
>
> Je ne connais rien en C...
> J'ai dupliqué un pgm C...
>
> J'ai modifié...
> Il me manque juste un petit truc...
>
> J'ai ces lignes :
> while( ( de = readdir( dirp ) ) != NULL )
> {
> if ( strcmp( de->d_name, "." ) == 0 ||
> strcmp( de->d_name, ".." ) == 0 ||
> strcmp( de->d_name, dir ) != 0)
>
> Je suis en train de lire un répertoire pour récupérer tous les fichiers qui
> commencent par toto
> dir = toto
> Dans le fichier je peux avoir toto.01 ou toto.01 toto.02 ....
> de->d_name = toto.01
>
> J'aimerai donc qu'il compare en enlevant les dernières lettres après le
> point et aussi le point car je peux avoir toto.115
> Je ne peux pas dire que j'enlève les 3 dernières lettres, il peut y en avoir
> 4.
> On fait comment en C?
>
> merci
> anne
>
>
--
===============================================================
| Equipe M.O.S.T. | http://most.hmg.inpg.fr |
| Patrick BEGOU | ------------ |
| LEGI | mailto:Patrick.Begou@hmg.inpg.fr |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===============================================================