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

C 語言入門筆記(四):字串、字串陣列與標準庫字串函數完全手冊

     編輯:關於C語言

字串本質

C 無內建字串型別,**字串 = 以 \0 結尾的字元陣列**。

char s1[] = {'a','b','c','\0'};
char s2[] = "abc";          // 編譯器自動補 \0
char *s3 = "abc";           // 指向常數區,唯讀

字串陣列(二維字元陣列)

char names[3][20] = {"Alice", "Bob", "Charlie"};
// 3 列,每列最多 19 字元 + \0

標準庫字串函數速查

函數原型行為
strlensize_t strlen(const char *s)回傳字串長度(**不含 \0**)
strcpychar *strcpy(char *dest, const char *src)複製含 \0,dest 需足夠大,**不安全**
strncpychar *strncpy(char *dest, const char *src, size_t n)最多複製 n 字元,**不保證 \0 結尾**
strcatchar *strcat(char *dest, const char *src)接在 dest \0 之後,dest 需足夠空間
strcmpint strcmp(const char *s1, const char *s2)字典序比較:<0 / =0 / >0
strchrchar *strchr(const char *s, int c)尋找字元首次出現位址
strstrchar *strstr(const char *haystack, const char *needle)尋找子字串首次出現位址

輸入/輸出函數對比

函數特性適用場景
gets讀整行含空白,**不安全**(已移除 C11)教學/舊代碼
fgets指定大小、保留 \n、安全**推薦**互動輸入
scanf %s跳過空白、遇空白停止、不保留 \n格式化讀取單詞
puts輸出字串**自動換行**簡單列印
printf %s不換行、可格式化通用輸出

安全字串處理建議

  • 優先使用 snprintf/strncat/strncpy 並手動補 \0;
  • 輸入緩衝區大小至少 MAX_INPUT + 1;
  • 避免 gets/strcpy/strcat 無邊界版本。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved