How do I read numbers from a serial sequence
I don't have a separator to use


You do. There is a space before the integer part of the frequency, and a
decimal point just after it. You can use strchr() to find them. Then,
you will have to prepend a zero if needed, and terminate the string one
character before the decimal point.

The following code does this by overwriting the original string. If you
need to keep that string, you will instead have to copy the relevant
characters to another buffer:

char * get_freq(char *message)
{
    char *space = strchr(message, ' ');
    char *dot   = strchr(message, '.');

    if (!space || !dot || dot - space &lt; 5)
        return NULL;    // invalid message

    if (dot - space == 5)
        *space = '0';   // prepend a zero

    *(dot - 1) = '\0';  // terminate the string

    return dot - 5;
}