strlen not in arduino reference? And String library question

Hi I'm new to Arduino but do like what I see so far from this interesting little platform. However, I seem to be finding the programming rather difficult.

I noticed that the strlen() function is not in the arduino reference documentation here: http://www.arduino.cc/en/Reference/HomePage I've been having some difficulties with char arrays and I was wondering if anyone knows where I can read the documentation of the strlen() function, or the documentation for any other functions which might not be in the official Arduino docs (in particular anything that might help me work with char arrays).

The reason I am working with char arrays is that I've had some difficulties with the String library and have temporarily given up on it as a result. Is it just me, or is the String library a little unreliable? I see to get unrepeatable an inexplicable behaviour working with it. I am only doing basic things to write short debug messages over the USB hardware Serial connection. I'm sorry I haven't got any code to illustrate my point right now but I wondered if there are any guides/books/blogs out there with tips on how (not) to use the String library. I've tried googling and this forum search but everything I find seems simplistic and no one ever mentions any gotchas to watch out for.

Thanks in advance.

AnotherGuy

I noticed that the strlen() function is not in the arduino reference documentation here:

Because strlen() is not unique to the Arduino.

I was wondering if anyone knows where I can read the documentation of the strlen() function, or the documentation for any other functions which might not be in the official Arduino docs (in particular anything that might help me work with char arrays).

Any C book will cover char arrays and string functions. Google is a good source.

Is it just me, or is the String library a little unreliable?

Reliable? Yes. A good fit with the Arduino? No.

with tips on how (not) to use the String library.

Learn to NOT use it, first.

Just to chime with Paul.

The String library is a pet hate of mine. IMHO careful use of char* the occasional statically allocated buffer and thinking about it are a much better alternative when you only have a couple of k of RAM to play with.

Aside from the issue of whether it's desirable to use the string library, there's a fair of documentation for the runtime libraries which can be accessed by links at the bottom of the Arduino reference home page. For example the avr-libc link takes you to http://www.nongnu.org/avr-libc/user-manual/modules.html which has pretty comprehensive documentation about the AVR runtime libraries use by the Arduino IDE. (It's my observation that the Arduino-specific language reference documentation is pretty thin, but the rest of the AVR runtime libraries are quite thoroughly documented.)

While you learn how NOT to use the string library you may want to learn about PROGMEM macros. Again Google is your friend.

Thanks for the help guys.

I have a C reference book but I wrongly had the impression that I could only work with the language as defined in the Arduino reference.

I also didn't notice the link to the avf-libc reference documentation on the Arduino reference page. That is precisely what I was looking for - a complete reference, so thank you, I now have lots of functions to make my life much easier.

I will certainly follow the advice not to use the String library, thank you for that too.