16.1.5 Comparison of string APIs

This table summarizes the API functions available for strings, in POSIX and in Gnulib.

unibyte strings onlyassume C localemultibyte stringsmultibyte strings with NULswide character strings32-bit wide character strings
strlenstrlenmbslensd_lengthwcslenu32_strlen
strnlenstrnlenmbsnlenwcsnlenu32_strnlen, u32_mbsnlen
strcmpstrcmpstrcmpsd_cmpwcscmpu32_strcmp
strncmpstrncmpstrncmpwcsncmpu32_strncmp
strcasecmpstrcasecmpmbscasecmpwcscasecmpu32_casecmp
strncasecmpstrncasecmpmbsncasecmp, mbspcasecmpwcsncasecmpu32_casecmp
strcollstrcmpstrcollwcscollu32_strcoll
strxfrmstrxfrmwcsxfrm
strchrstrchrmbschrsd_indexwcschru32_strchr
strrchrstrrchrmbsrchrsd_last_indexwcsrchru32_strrchr
strstrstrstrmbsstrsd_containswcsstru32_strstr
strcasestrstrcasestrmbscasestr
str_startswithstr_startswithmbs_startswithsd_startswithu32_startswith
str_endswithstr_endswithmbs_endswithsd_endswithu32_endswith
strspnstrspnmbsspnwcsspnu32_strspn
strcspnstrcspnmbscspnwcscspnu32_strcspn
strpbrkstrpbrkmbspbrkwcspbrku32_strpbrk
strtok_rstrtok_rmbstok_rwcstoku32_strtok
strsepstrsepmbssep
strcpystrcpystrcpysd_copywcscpyu32_strcpy
stpcpystpcpystpcpywcpcpyu32_stpcpy
strncpystrncpystrncpywcsncpyu32_strncpy
stpncpystpncpystpncpywcpncpyu32_stpncpy
strcatstrcatstrcatsd_concatwcscatu32_strcat
strncatstrncatstrncatwcsncatu32_strncat
freefreefreesd_freefreefree
strdupstrdupstrdupsd_copywcsdupu32_strdup
strndupstrndupstrndup
mbswidthmbswidthmbswidthwcswidthc32swidth, u32_strwidth
strtolstrtolstrtol
strtoulstrtoulstrtoul
strtollstrtollstrtoll
strtoullstrtoullstrtoull
strtoimaxstrtoimaxstrtoimaxwcstoimax
strtoumaxstrtoumaxstrtoumaxwcstoumax
strtofstrtof
strtodc_strtodstrtod
strtoldc_strtoldstrtold
strfromfstrfromf
strfromdstrfromd
strfromlstrfroml
mbstowcsmbstoc32s
mbsrtowcsmbsrtoc32s
mbsnrtowcsmbsnrtoc32s
wcstombsc32stombs
wcsrtombsc32srtombs
wcsnrtombsc32snrtombs