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

C語言函數速查手冊(五):P-S 字母開頭函數完整參考

     編輯:關於C語言

parsfnm - 解析檔名至 FCB 結構

char *parsfnm(char *cmdline, struct fcb *fcbptr, int option);
// 範例:從命令列字串填入 FCB

peek / peekb - 讀取記憶體絕對位址

int peek(unsigned segment, unsigned offset);
int peekb(unsigned segment, unsigned offset);
// 範例:讀取鍵盤狀態旗標 (0x0040:0x0017)

qsort - 快速排序通用演算法

void qsort(void *base, size_t nmemb, size_t size,
           int (*compar)(const void *, const void *));
// 範例:字串陣列排序
int cmp(const void *a, const void *b) { return strcmp(*(char**)a, *(char**)b); }
qsort(list, 5, sizeof(char*), cmp);

raise - 發送訊號給自身程序

int raise(int sig);
// 範例:預防除零錯誤
if (b == 0) raise(SIGFPE);

rand / srand - 偽亂數產生器

int rand(void);
void srand(unsigned int seed);
// 範例:以時間為種子產生 0-99 亂數
srand((unsigned)time(NULL));
for (int i=0; i<10; i++) printf("%d ", rand() % 100);

randbrd / randbwr - FCB 隨機區塊讀寫

int randbrd(struct fcb *fcb, int reccnt);
int randbwr(struct fcb *fcb, int reccnt);
// 古老 DOS FCB 介面,現代開發不建議使用

strstr - 子字串搜尋

char *strstr(const char *haystack, const char *needle);
// 回傳首次出現位址,未找到回傳 NULL

strtod / strtol / strtoul - 字串轉數值

double strtod(const char *nptr, char **endptr);
long strtol(const char *nptr, char **endptr, int base);
unsigned long strtoul(const char *nptr, char **endptr, int base);
// 比 atoi/atof 更安全,可檢測轉換錯誤

strtok - 字串分割

char *strtok(char *str, const char *delim);
// 首次呼叫傳 str,後續傳 NULL;會修改原字串
// 執行緒不安全,多執行緒請用 strtok_r / strtok_s

strupr / strlwr - 大小寫轉換

char *strupr(char *str);   // 轉大寫
char *strlwr(char *str);   // 轉小寫
// 就地修改字串,非標準函數

swab - 位元組交換

void swab(const char *from, char *to, int nbytes);
// 相鄰兩位元組對調,用於大小端轉換

system - 執行系統命令

int system(const char *command);
// 範例:system("dir");  呼叫命令解釋器
// 安全性風險:命令注入,避免處理不可信輸入

重要提醒

  • parsfnm、peek、randbrd、randbwr、strupr 等為 Borland/DOS 時代產物,現代標準 C 不包含。
  • qsort、strtod、strtok、system 為 ANSI C 標準,跨平台可用。
  • rand() 品質較差,嚴肅應用請用 random() (BSD) 或 C++11 <random>。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved