首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言字符串常用函數速查表:string.h 核心 API 完全指南

     編輯:關於C語言

C 標準庫 <string.h> 字符串處理函數速查

掌握這些函數是 C 程序員處理文本的基礎,注意區分安全/不安全版本(如 strcpy vs strncpy)。

輸入輸出函數

函數說明關鍵差異
getchar()讀取單字符,需回車確認返回 ASCII 碼,可配合 putchar() 輸出
getch()無回顯讀取單字符非標準,常用於密碼輸入/暫停
gets(str)讀取整行到字符數組危險:無長度檢查,已棄用
fgets(str, n, stdin)安全讀取指定長度保留換行符,推薦替代 gets
puts(str)輸出字符串並換行自動補全 \n,不支持格式化

核心操作函數

函數原型功能返回值注意事項
strlensize_t strlen(const char *s)計算字符串長度(不含\0)長度O(n),勿放在循環條件中重複調用
strcpychar *strcpy(char *dest, const char *src)複製字符串(含\0)dest目標空間必須足夠,否則緩衝區溢出
strncpychar *strncpy(char *dest, const char *src, size_t n)複製前 n 字符dest若 src< n 以\0填充;若 src≥n 不自動加\0
strcatchar *strcat(char *dest, const char *src)拼接字符串destdest 需有足夠空間
strncatchar *strncat(char *dest, const char *src, size_t n)拼接前 n 字符dest保證結果以\0結尾
strcmpint strcmp(const char *s1, const char *s2)字典序比較<0,=0,>0區分大小写,按 ASCII 碼比較
strncmpint strncmp(const char *s1, const char *s2, size_t n)比較前 n 字符<0,=0,>0
strchrchar *strchr(const char *s, int c)查找字符首次出現指針/NULL包含\0在搜索範圍內
strrchrchar *strrchr(const char *s, int c)查找字符最後出現指針/NULL
strstrchar *strstr(const char *haystack, const char *needle)查找子串指針/NULL

大小寫轉換(非標準,常見擴展)

  • strlwr(str):轉小寫
  • strupr(str):轉大寫
  • 標準替代:逐字符 tolower()/toupper()

安全編程建議

  1. 優先使用帶 n 版本(strncpy, strncat, snprintf)
  2. 字符串複製後手動確保結尾:dest[n-1] = '\0'
  3. 避免 gets、sprintf、strcat 等無邊界檢查函數
  4. C11 附錄 K 提供 strcpy_s 等安全版本(MSVC 支持較好)

內存佈局提醒

char str[] = "hello";  // 棧上數組,可修改,大小6
char *p = "hello";     // 指向只讀區常量,不可修改
// p[0] = 'H'; // 崩潰!
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved