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 ?
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
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); }
J'ai lu sur une doc que strlen ne comptait pas \0 de fin de chaine c'est faux ?
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
Partager