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

C++ 語言基礎:標準字串操作函式與 sprintf 格式化完全指南

     編輯:VC 教學

標準字串操作函式

C++ 無內建字串型別,標準 C 庫提供字串處理函式。表 1.3 列出常用函式:

函式說明
strcat()將字串連接到目標字串末尾
strcmp()比較兩字串是否相等
strcmpi()比較兩字串是否相等(不分大小寫)
strcpy()將字串內容複製到目標字串
strstr()掃描字串中第一次出現的子字串
strlen()回傳字串長度
strupr()將字串所有字元轉大寫
sprintf()根據參數建立格式化字串

多數 C++ 編譯器提供 cstring 類別簡化處理;C++ Builder 有 AnsiString。但 C 風格字串處理仍常用並未過時。

strcpy() 範例


char buff[30];
strcpy(buff, "This is a test.");
cout << buff << endl;

char buff2[] = "A second string.";
strcpy(buff, buff2);
cout << buff << endl;

⚠ 字元陣列極易越界


char buff[10] = "A string"; // 9 字元 + \0
strcpy(buff, "This is a test."); // 需 16 字元 + \0 → 越界 6 位元組!

小錯誤抹除 6 位元組記憶體。**複製資料到字元陣列時必須特別小心**。

sprintf() 格式化字串

混合文字與數字建立格式化字串:


char buff[20];
int x = 10 * 20;
sprintf(buff, "The result is: %d", x);
cout << buff; // 顯示 "The result is: 200"

%d 告訴 sprintf 此處放整數,格式字串後的變數 x 提供值。

sprintf 可接受多個參數:


int x = 20, y = 5;
sprintf(buff, "%d + %d = %d", x, y, x + y);
cout << buff; // 顯示 "20 + 5 = 25"

跳脫字元

C++ 字串中 \ 表特殊字元:\n 換行、\t 定位。要放實際反斜線須用 \\:


strcpy(fileName, "c:\\windows\\system\\win.ini");

許多程式設計師因忘記此事徹夜難眠。**常見錯誤,切記!**

wsprintf():Windows 版 sprintf

功能相似,差別:**格式字串不可放浮點數**。C++ Builder 兩者皆可用,但 sprintf 完整支援浮點數且少打一字元。

字串陣列

字串陣列 = 字元陣列的陣列。Argstest 程式已用過:


char strings[][20] = {
    "This is string 1",
    "This is string 2",
    "This is string 3",
    "This is string 4"
};

四個字串,每個最多 19 字元。常用字串陣列建議看 STL,提供更方便的儲存與操作,含 string 類別。

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