stringh 是 C 標準庫的一個標頭檔案，其中包含了宏（巨集）定義、常量以及函式和型別的宣告，涉及的內容除了字串處理之外，還包括大量的記憶體處理函式；因此，stringh 這個命名是不恰當的。 在 stringh 中定義的函式十分常用，作為 C 標準庫的一部分，它們被強制要求可以在任何支援 C 語言的平臺上執行。但是，部分函式存在一些安全隱患，例如快取溢位等，導致程式設計師寧願使用一些更安全的函式而放棄一定的可移植性。同時，這些字串函式只能處理 ASCII 字元集或相容 ASCII 的字元集，如 ISO88591；在處理存在多位元組字元的字元集，如 UTF8 時，會產生一個警告，指出對字串 長度 的計算是以位元組而不是以 Unicode 字元為單位。非 ASCII 相容字元集的字串處理函式一般位於 wcharh 中。 常量和型別 名稱 說明 NULL 表示空指標常量的宏，即表示一個不指向任何有效記憶體單元地址的指標常量。 size_t 無符號整型，被用於 sizeof 運算子的返回值型別。 函式 名稱 說明 void memcpy void dest const void src size_t n 將 n 位元組長的內容從一個記憶體地址複製到另一個地址；如果兩個地址存在重疊，則最終行為未定義 void memmove void dest const void src size_t n 將 n 位元組長的內容從一個記憶體地址複製到另一個地址；與 memcpy 不同的是它可以正確作用於兩個存在重疊的地址 void memchr const void s char c size_t n 在從 s 開始的 n 個位元組內查詢 c 第一次出現的地址並返回，若未找到則返回 NULL int memcmp const void s1 const void s2 size_t n 對從兩個記憶體地址開始的 n 個字元進行比較 void memset void int size_t 用某種位元組內容覆寫一段記憶體空間 char strcat char dest const char src 在字串 dest 之後連線上 src char strncat char dest const char src size_t n 從 src 擷取 n 個字元連線在字串 dest 之後，返回 dest 字串 char strchr const char str int ch 從字串 str 頭開始查詢字元 ch 首次出現的位置 char strrchr const char strint ch 從字串 str 尾開始查詢字元 ch 首次出現的位置 int strcmp const char const char 基於字典順序比較兩個字串 int strncmp const char const char size_t n 基於字典順序比較兩個字串，最多比較 n 個位元組 int strcoll const char const char 基於當前區域設定的比較兩個字串 char strcpy char str1 const char str2 將 str2 複製給 str1 char strncpy char str1 const char str2 size_t n 擷取 str2 的 n 個字元複製給 str1 char strerror int 返回錯誤碼對應的解釋字串，參見 errnoh（非執行緒安全函式） size_t strlen const char 返回一個字串的長度 size_t strspn const char s const char strCharSet 從字串 s 的起始處開始，尋找第一個不出現在 strCharSet 中的字元，返回其位置索引值。換句話說，返回從字串 s 的起始位置的完全由 strCharSet 中的字元構成的子串的最大長度。strspn 為 string span 的縮寫。不支援多位元組字元集。 size_t strcspn const char s const char strCharSet 從字串 s 的起始處開始，尋找第一個出現在 strCharSet 中的字元，返回其位置索引值。換句話說，返回從字串 s 的起始位置的完全由不屬於 strCharSet 中的字元構成的子串的最大長度。strcspn 為 string complement span 的縮寫。不支援多位元組字元集。 char strpbrk const char s const char breakset 在字串 s 中查詢 breakset 中任意字元第一次出現的位置的指標值。strpbrk 為 string pointer break 縮寫。通常，breakset 是分隔符的集合。不支援多位元組字元集。 char strstr const char haystack const char needle 在字串 haystack 中查詢字串 needle 第一次出現的位置，heystack 的長度必須長於 needle char strtok char strToken const char strDelimit 將一個字串 strToken 依據分界符（delimiter）分隔成一系列字串。此函式非執行緒安全，且不可重入；但 MSVC 實現時使用了 threadlocal static variable 因而是執行緒安全的但仍然是不可重入，即在單執行緒中不能對兩個源字串交替呼叫該函式來分析 token，應當對一個字串分析完成後再處理別的字串。 size_t strxfrm char dest const char src size_t n 根據當前 locale 轉換一個字串為 strcmp 使用的內部格式 ISO C 擴充套件函式 名稱 說明 標準 void memccpy void dest const void src int c size_t n 在兩塊不重疊的記憶體地址間複製內容，直至複製了 n 位元組或遇到內容為 c 的位元組 UNIX 98 void mempcpy void dest const void src size_t n memcpy 的變體，返回寫入的最後一個位元組的地址指標 GNU errno_t strcat_s char s1 size_t s1max const char s2 strcat 的變體，帶邊界檢查 ISOIEC WDTR 24731 errno_t strcpy_s char s1 size_t s1max const char s2 strcpy 的變體，帶邊界檢查 ISOIEC WDTR 24731 char strdup const char 將字串的內容複製到一段新分配的記憶體空間 POSIX；源於一個 BSD 擴充套件標準 int strerror_r int char size_t 將 strerror 的結果放入一段給定的記憶體緩衝，此函式是執行緒安全的 POSIX2001 char strerror_r int char size_t 使用執行緒安全的方式返回 strerror 的結果。在必要的時候才使用給定的記憶體緩衝 與 POSIX 中的定義不一致 GNU size_t strlcat char dest const char src size_t n strcat 的變體，帶邊界檢查 首先定義於 OpenBSD，現在也可以在 FreeBSD、Solaris、Mac OS X 中找到 size_t strlcpy char dest const char src size_t n strcpy 的變體，帶邊界檢查 首先定義於 OpenBSD，現在也可以在 FreeBSD、Solaris、Mac OS X 中找到 char strsignal int sig 與 strerror 類似，返回有符號數 sig 對應的錯誤解釋字串（非執行緒安全函式） BSDs Solaris Linux char strtok_r char const char char strtok 的執行緒安全且可重入的版本 POSIX 外部連結 Linux 庫函式手冊：字串操作 Category 字串 CategoryC 標準庫標頭檔案