Strlen valeur retournée ?
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:
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:
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 ?