You can get the length of a string using the strlen
function.
This function is declared in the header file `string.h'.
strlen
function returns the length of the null-terminated
string s. (In other words, it returns the offset of the terminating
null character within the array.)
For example,
strlen ("hello, world") => 12
When applied to a character array, the strlen
function returns
the length of the string stored there, not its allocated size. You can
get the allocated size of the character array that holds a string using
the sizeof
operator:
char string[32] = "hello, world"; sizeof (string) => 32 strlen (string) => 12
But beware, this will not work unless string is the character array itself, not a pointer to it. For example:
char string[32] = "hello, world"; char *ptr = string; sizeof (string) => 32 sizeof (ptr) => 4 /* (on a machine with 4 byte pointers) */
This is an easy mistake to make when you are working with functions that take string arguments; those arguments are always pointers, not arrays.
strnlen
function returns the length of the null-terminated
string s is this length is smaller than maxlen. Otherwise
it returns maxlen. Therefore this function is equivalent to
(strlen (s) < n ? strlen (s) : maxlen)
but it
is more efficient.
char string[32] = "hello, world"; strnlen (string, 32) => 12 strnlen (string, 5) => 5
This function is a GNU extension.
Go to the first, previous, next, last section, table of contents.