# Null-terminated byte strings

From cppreference.com
< cpp‎ | string

A null-terminated byte string (NTBS) is a possibly empty sequence of nonzero bytes followed by a byte with value zero (the terminating null character). Each byte in a byte string encodes one character of some character set. For example, the character array {'\x63', '\x61', '\x74', '\0'} is an NTBS holding the string "cat" in ASCII encoding.

### Functions

##### Character classification
Defined in header `<cctype>`
isalnum | checks if a character is alphanumeric (function)
isalpha | checks if a character is alphabetic (function)
islower | checks if a character is lowercase (function)
isupper | checks if a character is an uppercase character (function)
isdigit | checks if a character is a digit (function)
isxdigit | checks if a character is a hexadecimal character (function)
iscntrl | checks if a character is a control character (function)
isgraph | checks if a character is a graphical character (function)
isspace | checks if a character is a space character (function)
isblank (C++11) | checks if a character is a blank character (function)
isprint | checks if a character is a printing character (function)
ispunct | checks if a character is a punctuation character (function)
##### Character manipulation
tolower | converts a character to lowercase (function)
toupper | converts a character to uppercase (function)

ASCII values | characters | `iscntrl` `iswcntrl` | `isprint` `iswprint` | `isspace` `iswspace` | `isblank` `iswblank` | `isgraph` `iswgraph` | `ispunct` `iswpunct` | `isalnum` `iswalnum` | `isalpha` `iswalpha` | `isupper` `iswupper` | `islower` `iswlower` | `isdigit` `iswdigit` | `isxdigit` `iswxdigit`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
decimal | hexadecimal | octal
0–8 | `\x0`–`\x8` | `\0`–`\10` | control codes (`NUL`, etc.) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
9 | `\x9` | `\11` | tab (`\t`) | `≠0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
10–13 | `\xA`–`\xD` | `\12`–`\15` | whitespaces (`\n`, `\v`, `\f`, `\r`) | `≠0` | `0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
14–31 | `\xE`–`\x1F` | `\16`–`\37` | control codes | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
32 | `\x20` | `\40` | space | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
33–47 | `\x21`–`\x2F` | `\41`–`\57` | `!"#$%&'()*+,-./` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
48–57 | `\x30`–`\x39` | `\60`–`\71` | `0123456789` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `0` | `0` | `0` | `≠0` | `≠0`
58–64 | `\x3A`–`\x40` | `\72`–`\100` | `:;<=>?@` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
65–70 | `\x41`–`\x46` | `\101`–`\106` | `ABCDEF` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `≠0`
71–90 | `\x47`–`\x5A` | `\107`–`\132` | `GHIJKLMNOP` `QRSTUVWXYZ` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `≠0` | `0` | `0` | `0`
91–96 | `\x5B`–`\x60` | `\133`–`\140` | `[\]^_`` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
97–102 | `\x61`–`\x66` | `\141`–`\146` | `abcdef` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `0` | `≠0` | `0` | `≠0`
103–122 | `\x67`–`\x7A` | `\147`–`\172` | `ghijklmnop` `qrstuvwxyz` | `0` | `≠0` | `0` | `0` | `≠0` | `0` | `≠0` | `≠0` | `0` | `≠0` | `0` | `0`
123–126 | `\x7B`–`\x7E` | `\172`–`\176` | `{|}~` | `0` | `≠0` | `0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0`
127 | `\x7F` | `\177` | backspace character (`DEL`) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`

##### Conversions to numeric formats
Defined in header `<cstdlib>`
atof | converts a byte string to a floating point value (function)
atoi atol atoll (C++11) | converts a byte string to an integer value (function)
strtol strtoll (C++11) | converts a byte string to an integer value (function)
strtoul strtoull (C++11) | converts a byte string to an unsigned integer value (function)
strtof strtod strtold | converts a byte string to a floating point value (function)
Defined in header `<cinttypes>`
strtoimax strtoumax (C++11)(C++11) | converts a byte string to std::intmax_t or std::uintmax_t (function)
##### String manipulation
Defined in header `<cstring>`
strcpy | copies one string to another (function)
strncpy | copies a certain amount of characters from one string to another (function)
strcat | concatenates two strings (function)
strncat | concatenates a certain amount of characters of two strings (function)
strxfrm | transform a string so that strcmp would produce the same result as strcoll (function)
##### String examination
Defined in header `<cstring>`
strlen | returns the length of a given string (function)
strcmp | compares two strings (function)
strncmp | compares a certain number of characters from two strings (function)
strcoll | compares two strings in accordance to the current locale (function)
strchr | finds the first occurrence of a character (function)
strrchr | finds the last occurrence of a character (function)
strspn | returns the length of the maximum initial segment that consists of only the characters found in another byte string (function)
strcspn | returns the length of the maximum initial segment that consists of only the characters not found in another byte string (function)
strpbrk | finds the first location of any character from a set of separators (function)
strstr | finds the first occurrence of a substring of characters (function)
strtok | finds the next token in a byte string (function)
##### Character array functions
Defined in header `<cstring>`
memchr | searches an array for the first occurrence of a character (function)
memcmp | compares two buffers (function)
memset | fills a buffer with a character (function)
memcpy | copies one buffer to another (function)
memmove | moves one buffer to another (function)
##### Miscellaneous
Defined in header `<cstring>`
strerror | returns a text version of a given error code (function)

### See also

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/byte&oldid=148422"