String-Behandlung in C ist am Anfang etwas uninuitiv und bei dir kommt noch hinzu, dass du dich generell nicht richtig mit der Sprache auskennst (sie das Thema mit Rückgabe-Werten, was gar nicht mal C-spezifisch war).
Aber es ist auch nicht so schlimm wie manche suggerieren. Es kommt aber sehr stark darauf an wie der String genau aussieht. Deshalb kann man schlecht sagen was man genau machen muss.
Hier sind z.B. die wichtigsten Funktionen erklärt:
Und hier ist was in der AVR libc wirklich gibt:
http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html
Dazu gibt es noch stdlib.h (da stehen u.a. Konvertierungsfunktionen von String nach Integer drin):
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html
Generell ist es vielleicht am einfachsten wenn man alle Werte mit einem bestimmten Trennzeichen trennt - z.B. ein Komma - und dann den String mit strtok() schrittweise in Teil-Strings zerlegt. Dann kann man für jeden Teil-String die entsprechende Konvertierungsfunktion verwenden.
Das geht wenn der String jedesmal gleich aufgebaut ist. Wenn man sowas hat wie "temp=12.5" hat und man will danach suchen, kann man mit strstr() und strcspan() arbeiten. Das hatte ich hier mal in etwas abgewandelter Form erklärt:
http://forum.arduino.cc/index.php?topic=202171.0
Einfacher würde es gehen wenn du blanke Binärwerte senden könntest.