Stando a come la descrivi, la tua stringa è formattata in modo molto semplice, preciso e rigido, significa che la sua lettura/scrittura è molto semplice e non richiede funzioni generiche.
Considera che una stringa in C è un array di valori di tipo char (o wchar_t se hai bisogno di usare un set esteso di caratteri) in cui il carattere finale è sempre '\0' (valore zero), che sta ad indicare che la sequenza di caratteri è terminata. Ogni valore in tale array ha una corrispondenza biunivoca con un preciso carattere, tale corrispondenza si chiama codifica dei caratteri. Dovrai solo decidere quale codifica dei caratteri adoperare. Ad ogni modo, che sia UTF-8, UTF-32 o il Microsoft Windows Codepage (ANSI), i primi 127 caratteri sono codificati sempre come ASCII. Vale a dire ad esempio che lo spazio corrisponde al valore 32, i caratteri numerici vanno dal valore 48 per il carattere '0' al valore 57 per il carattere '9' e il carattere '\n' corrisponde al valore 10 (vedi ASCII table). Se quel che ho scritto ti è limpido, allora capisci anche che è molto semplice codificare e decodificare la tua stringa.