If a standard function is not declared it means:
1. you're not including the header that defines it
2. you've forgotten about the namespace
If you are using Visual C++, use either your local help or MSDN :
http://msdn.microsoft.com
When I search for strlen, the first item in the search results list is the entry for this function. Including where it lives.
If you're using GCC, I am not sure where the best places are to look (any Linux types about?). I normally just Google along the line of "+strlen +gcc" and look at the mosy likely entries that get listed.
Here you need <cstring>
Andy
P.S. There is one trick, though. MSDN list the file for strlen as <string.h>
But it is better C++ to use <cstring>, as it wraps the function in the standard namespace (same for <cstdio>, <cstdlib>, ... cf. <stdio.h>, <stdlib.h>, so you should see the pattern!)
So -- for standard library headers -- you should usually try the <cstring> form first, before using the string.h form.