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

C 語言字串完整指南:定義方式、輸入輸出函式、指標與陣列差異、二維指標陣列應用

     編輯:關於C語言

字串本質

字串 = char 陣列 + 結尾 '\0' (NUL 字元)。

五種定義方式

方式代碼特性
字串常數"hello"靜態儲存區,唯讀,同內容共用
陣列初始化char s[] = "hello";編譯器算大小,堆疊/資料段,可修改
指定大小陣列char s[20] = "hello";固定緩衝區,防溢位
指標指向常數const char *p = "hello";指向唯讀區,指標可改、內容不可改
指標陣列char *a[] = {"s1","s2"};每元素指向字串常數,適合字串集合

字串輸入函式

字串輸出函式

函式行為安全性
gets(s)讀整行至換行,不檢查長度❌ 已棄用,極危險
fgets(s, n, stdin)最多 n-1 字元,保留換行✅ 推薦
scanf("%s", s)讀單詞 (跳過空白,遇空白停)⚠️ 需配合寬度 %19s

char *p vs char s[] 關鍵差異

函式特性
puts(s)自動換行
fputs(s, stdout)不換行,可導向檔案
printf("%s", s)格式化彈性大
操作char s[]char *p
修改內容✅❌ (指向常數區)
指標運算 ++p❌ (陣列名非左值)✅
sizeof陣列總大小指標大小 (4/8)

二維指標陣列 vs 指向二維陣列指標

char *msg[3] = {"a", "b", "c"};      // msg: 3 元素指標陣列
char (*pmsg)[3] = &msg;              // pmsg: 指向 3 元素指標陣列的指標
  • msg[i] → 第 i 個字串位址。
  • *msg[i] / msg[i][0] → 第 i 字串首字元。

總結

掌握字串「NUL 結尾」本質、五種定義選擇標準、fgets 安全輸入、char*/char[] 差異、指標陣列管理字串集合,即能輕鬆駕馭 C 語言字串處理各種場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved