LINUX.ORG.RU

История изменений

Исправление dikiy, (текущая версия) :

#include <stdio.h>

void main () {
        char *s="0.000315625,1,DATA,0x10210046,0x8,0x01 0x4A 0x00 0x79 0x0A 0xB3 0x00 0x01,0x6208,ACK";

        char *s2[255];
        float f; int i,j,k;
        unsigned char hexes[8];
        sscanf(s, "%f,%d,DATA,%x,%x,%i%i%i%i%i%i%i%i,%s", &f,&i,&j,&k,&hexes[0],&hexes[1],&hexes[2],&hexes[3],&hexes[4],&hexes[5],&hexes[6],&hexes[7],s2);
        printf("%x\n", hexes[7]);

}

все можно с scanf, хоть и не так красиво. Но может знатоки поправят. можно еще красивее, если в цикле делать. но если строки остаются именно такими, как ты описал, то смысла городить циклы нет, ибо и так работать будет.

Исправление dikiy, :

#include <stdio.h>

void main () {
        char *s="0.000315625,1,DATA,0x10210046,0x8,0x01 0x4A 0x00 0x79 0x0A 0xB3 0x00 0x01,0x6208,ACK";

        char *s2[255];
        float f; int i,j,k;
        unsigned char hexes[8];
        sscanf(s, "%f,%d,DATA,%x,%x,%i%i%i%i%i%i%i%i,%s", &f,&i,&j,&k,&hexes[0],&hexes[1],&hexes[2],&hexes[3],&hexes[4],&hexes[5],&hexes[6],&hexes[7],s2);
        printf("%x\n", hexes[7]);

}

все можно с scanf, хоть и не так красиво. Но может знатоки поправят.

Исправление dikiy, :

#include <stdio.h>

void main () {
        char *s="0.000315625,1,DATA,0x10210046,0x8,0x01 0x4A 0x00 0x79 0x0A 0xB3 0x00 0x01,0x6208,ACK";

        char *s2[255];
        float f; int i,j,k;
        unsigned char hexes[8];
        sscanf(s, "%f,%d,DATA,%x,%x,%i%i%i%i%i%i%i%i,%s", &f,&i,&j,&k,&hexes[0],&hexes[1],&hexes[2],&hexes[3],&hexes[4],&hexes[5],&hexes[6],&hexes[7],s2);
        printf("%x\n", hexes[7]);

}

все можно с sscanf, хоть и не так красиво. Но может знатоки поправят.

Исходная версия dikiy, :

#include <stdio.h>

void main () {
        char *s="0.000315625,1,DATA,0x10210046,0x8,0x01 0x4A 0x00 0x79 0x0A 0xB3 0x00 0x01,0x6208,ACK";

        char *s2[255];
        float f; int i,j,k;
        unsigned char hexes[8];
        sscanf(s, "%f,%d,DATA,%x,%x,%i%i%i%i%i%i%i%i,%s", &f,&i,&j,&k,&hexes[0],&hexes[1],&hexes[2],&hexes[3],&hexes[4],&hexes[5],&hexes[6],&hexes[7],s2);
        printf("%x\n", hexes[7]);

}

все можно с sscanf, хоть и не так красиво. Но может знатоки поправят.