Bonjour,

J'utilise la fonction strlen afin de récupérer la longueur d'une variable, mais la valeur de retour de strlen est toujours n+1 (??)
Quelle en est la raison ?

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
28
29
30
31
32
33
34
 
#include <stdio.h>                 
#include <stdlib.h>                
#include <errno.h>                 
#include <string.h>                
/*------- DEFINE ------------------*/
#define LRECL_MIB 80               
/*------ MAIN    ------------------*/
int main(void)                     
{                                  
/*---- VARIABLES ET POINTEURS -----*/
 FILE *fichier;                    
 int LenCpc = 0;                   
 char *RCPC = NULL;                
 char Record[LRECL_MIB] = "";      
 long Taille_Record = 0;           
 fichier = fopen("dd:SYSIN","r");  /* ouverture du fichier en lect*/ 
  if (fichier != NULL)             /* test ouverture du fichier  */  
   {                                                                 
                 /* lecture du fichier jusqu'au dernier reccord  */  
     while(fgets(Record,LRECL_MIB,fichier) != NULL)                  
      {                                                              
       RCPC = strchr(Record,'=');                                    
       if (RCPC != NULL )                        /* enreg valide    */
        {                                                            
         LenCpc = strlen(RCPC);                                      
         printf("Le reccord :  %s\n",Record);                        
         printf("CPC LPAR   :  %s\n",RCPC);                          
         printf("len de CPC :  %d\n",LenCpc);                        
        }                                                            
      }                                                              
   }                                                                 
  return(0);
 }
Voici ce que j'ai lors de l'éxécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Le reccord :  1.3.6.1.4.1.2.6.42.2.0.1.0.6360144 = '4d41300a4d5a303100'h 
CPC LPAR   :  = '4d41300a4d5a303100'h                                    
len de CPC :  24                                                         
Le reccord :  1.3.6.1.4.1.2.6.42.2.0.1.0.79362290 = '4'h
CPC LPAR   :  = '4'h                                    
len de CPC :  7
J'ai lu sur une doc que strlen ne comptait pas \0 de fin de chaine c'est faux ?