évaluation de l'instruction if
Bonjour,
J'essai de réalisé un petit pgm qui recherche un index (dans un fichier) correspondant à l'argument passé lors de l'exécution du pgm.
Pour trouver cet index, je compare l'argument avec une portion de string du fichier. Cependant lors de la comparaison par l'instruction if, celui-ci ne fonctionne jamais (pas dégalité trouvé), bien qu'a l'affichage de l'argument et du string il soient identiques.
j'ai testé
Code:
1 2 3 4 5 6 7 8 9 10
|
if (argv[1] == pdeb)
{
----
}
/* est egalement */
if (argv[1] = pdeb)
{
----
} |
dans le premier cas la condition n'est jamais vrai, dans le second elle est toujours vrai.
exemple du fichier
Code:
1 2 3 4 5
|
6360144 MZ01MA0
29981132 KS01MCO
38204659 A213MA0
79362290 OZ01MCO |
exemple d'un argument
J'avoue ne pas comprendre pourquoi cela ne fonction pas, est'il possible de comparer des chaines string avec l'instruction if ?
voici 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main(int argc, char *argv[])
{
int rec = 0; /*compteur de reccord */
int c = 0; /*compteur */
int LenI = 0; /* taille de l'enreg */
int LenC = 0; /* taille des parametres*/
int Len = 0; /* taille de l'index */
char *pdeb = NULL; /* pointeur */
char LPARCPC[20]=""; /* nom LPAR + CPC */
char RECINDX[85] = ""; /* enreg du fichier */
char INDEX[20] = ""; /* INDEX de la MIB */
FILE *findx; /* pointeur pour fichier parametre */
findx = fopen("dd:SYSMIB","r"); /* ouverture du fichier */
if (findx != NULL) /* test ouverture */
{
printf(" argv[1] :%s\n",argv[1]);
while(fgets(RECINDX,80,findx) != NULL) /* lit le fichier*/
{
c = 0; /* init du compteur */
pdeb = strchr(RECINDX,' '); /*recherche LPARCPC */
char *cn = strchr(pdeb,'\n'); /*recherche '\n' */
if ( cn != NULL)
{
*cn = '\0';
}
pdeb = pdeb+1; /* avance d'un carctere pour eviter espace*/
printf(" LPAR CPC :%s\n",pdeb);
if (argv[1] == pdeb)
{
printf(" coucou \n ");
LenI = strlen(RECINDX); /* taille du reccord */
LenC = strlen(pdeb); /* taille LPARCPC */
Len = LenI - LenC; /* taille de l'index */
printf(" rec : %s\n",RECINDX);
for (c=0;c<Len;c++)
{
INDEX[c] = RECINDX[c]; /* constitution de lindex */
}
printf("INDEX : %s\n",INDEX);
} /* fin du if argv[1] */
}
}
return(0);
} /* fin du main*/ |