char, byte and String problams

Hi.
I am using the NMEA and the SDuFAT libraries.
I get some arrays of char from the NMEA lib (NMEA terms).
And read an array[512] of byte from the SD card (sector)
All the hardware and the basics are working correctly.
I need to find some of the NMEA terms in the data in the array filled with the SD sector.
I am trying to use the String and Wstring libraries.
strlen, String.contains, String.equals, String.append

But I run into continuous problems with the char, byte or long int definitions, etc.
With the 512 byte sector read I don't have enough RAM space left over (on the 328) to convert the byte array into a char array or define new 512 position strings.

Anybody some advice for a good read-up on this topic ?
Or anybody who can provide some hints or good examples ?

Thanks in advance.

The char and byte types are the same size, and, therefore, represent the same range of values. You should be able to use an explicit cast when a function doesn't like the given type.

char charData[512];
byte byteData[512];

ByteFunction((byte)charData);
CharFunction((char)byteData);

The char and byte types are the same size, and, therefore, represent the same range of values

Almost right.
They're the same size, but they don't (in the Arduino implementation) represent the same number range.
The "char" is an eight bit signed datatype (-128..+127), whilst the "byte" is unsigned (0..255).

http://arduino.cc/en/Reference/Char
http://arduino.cc/en/Reference/Byte

char charData[512];
byte byteData[512];

ByteFunction((byte[glow]*[/glow])charData);
CharFunction((char[glow]*[/glow])byteData);