Bonjour,
Je cherche à découper ma chaine de 184 caractères en fonction de la position en C, en cherchant l'équivalent du substring je suis tombé sur strncpy mais mon exemple ne fonctionne pas :/

Ci-joint mon code (main.c) :
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
35
36
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    char CA[6];
    char TA[2];
    char FA[5];
    char MA[6];
    char CA[12];
    char HA[16];
    char LA[14];
 
 
    printf("Hello\n");
    char data[] = "0010000001110010111100100000000010110011000000000000010100111000001101000101010011000000101001101001011100000000000000101111100000100000000000001011101110010000111111000000110101100111";
    strncpy(CA, data+4, 6 );
    strncpy(TA, data+10, 2 );
    strncpy(FA, data+12, 5 );
    strncpy(MA, data+17, 6 );
    strncpy(CA, data+64, 12);
    strncpy(HA, data+104, 16);
    strncpy(LA, data+142, 14 );
 
    printf("CA\n");printf(CA);
    printf("TA\n");printf(TA);
    printf("FA\n");printf(FA);
    printf("MA\n");printf(MA);
    printf("CA\n");printf(CA);
    printf("HA\n");printf(HA);
    printf("LA\n");printf(LA);
    printf("Finish\n");
 
    return 0;
}
Quand j’exécute, je n'ai pas du tout ce que je veux dans les variables et je ne comprends pas pourquoi, et j'ai même des caractères bizarre en sortie de console :

Hello
CA000001Ç↑@TA11000001Ç↑@FA0010111000001Ç↑@MA
1110010010111000001Ç↑@CA
0011010001011110010010111000001Ç↑@HA
00000000000000100011010001011110010010111000001Ç↑@LA
0010111011100100000000000000100011010001011110010010111000001Ç↑@Finish

Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.