C標準頭文件<string.h>

来源:http://www.cnblogs.com/xiaojiang1025/archive/2016/09/28/5915790.html
-Advertisement-
Play Games

裡面主要包含了一些與字元串關聯的函數的聲明,這些函數有如下的命名規則: 以"mem"開頭的函數操作任意的字元序列 以"strn"開頭的函數操作非空字元序列 以"str"開頭的函數操作空字元結尾的字元序列 數據類型 size_t 巨集 NULL 函數 複製 memcpy() memmove() strc ...


<string.h>裡面主要包含了一些與字元串關聯的函數的聲明,這些函數有如下的命名規則:

  • 以"mem"開頭的函數操作任意的字元序列
  • 以"strn"開頭的函數操作非空字元序列
  • 以"str"開頭的函數操作空字元結尾的字元序列

數據類型

size_t

巨集

NULL

函數

複製

memcpy()

/*
功能:從s2指向的對象中複製n個字元到s1指向的對象中,如果s1和s2有重疊,則結果未定義
參數:
返回值:返回s1
*/
void* memcpy(void* s1, const void* s2,size_t n);

memmove()

/*
功能:從s2指向的對象中複製n個字元到s1指向的對象中,即使s1,s2有重疊,仍可正常複製
參數:
返回值:
*/
void* memmove(void* s1, const void* s2, size_t n);

strcpy()

/*
功能:把s2指向的串(包括'\n')複製到s1指向的數組中,如果s1,s2重疊,則結果未定義
參數:
返回值:
*/
char* strcpy(char* s1, const char* s2);

strncpy()

/*
功能:從s2指向的數組中複製最多n和字元(到'\n'為止),如果s1,s2重疊,則結果未定義
參數:
返回值:
*/
char* strncpy(char* s1,const char* s2,size_t n);

strcat()

/*
功能:把s2指向的串(包括'\n')的副本添加到s1指向的串的末尾,會覆蓋s1的原本的'\n'
參數:
返回值:
*/
char* strcat(char* s1, const char* s2);

strncat()

/*
功能:把s2指向的串(包括'\n')的副本的最多n個字元(到'\n'為止)添加到s1指向的串的末尾,會覆蓋s1的原本的'\n'
參數:
返回值:
*/
char* strncat(char* s1, const char* s2, size_t n);

比較

memcmp()

/*
功能:將s1指向的對象的前n個字元和s2指向的對象的前n個字元進行比較
參數:
返回值:s1的相應字元大於等於小於s2的相應字元時,分別返回一個大於等於小於0的整數
*/
int memcmp(const void* s1,const void* s2, size_t n);

strcmp()

/*
功能:對s1指向的串和s2指向的串進行比較
參數:
返回值:s1串的>,=,<s2串時,分別返回一個/>,<,=0的整數
*/
int strcmp(const char* s1, const char* s2);

strcoll()

/*
功能:將s1串和s2串進行比較,比較時串都被解釋為適合當前區域設置的類型LC_COLLATE形式
參數:
返回值:
*/
int strcoll(const char* s1,const char* s2);

strncmp()

/*
功能:比較s1串和s2串最多n個字元
參數:
返回值:
*/
int strncmp(const char* s1, const char* s2, size_t n);

strxfrm()

/*
功能:轉換s2指向的串,並把結果串複製到s1指向的數組中
參數:
返回值:成功返迴轉換串的長度,如果返回的值是n或者更大,則s1指向的數組的內容是不確定的
*/
size_t strxfrm(char* s1,const char* s2, size_t n);

查找

memchr()

/*
功能:確定c在s指向的對象的前n個字元中第一次出現的位置
參數:
返回值:
*/
void* memchr(const void* s, int c, size_t n);

strchr()

/*
功能:確定c在s指向的串中第一次出現的位置
參數:
返回值:
*/
char* strchr(const char* s, int c);

strcspn()

/*
功能:計算s1指向的字元串中完全不是s2指向的串中的字元組成的最大初始段長度
參數:
返回值:
*/
size_t strcspn(const char* s1, const char* s2);

strpbrk()

/*
功能:確定s2指向的串中的任意字元在s1指向的串中第一次出現的位置
參數:
返回值:
*/
char* strpbrk(const char* s1, const char* s2);

strrohr()

/*
功能:確定c在s指向的串中最後一次出現的位置,'\n'被看作串的一部分
參數:
返回值:
*/
char* strchr(const char* s, int c);

strspn()

/*
功能:計算s1指向的字元串中完全由s2指向的串中的字元組成的最大初始段的長度
參數:
返回值:
*/
size_t strspn(const char* s1, const char* s2);

strstr()

/*
功能:函數strstr確定s2指向的串的字元序列在s1指向的串中第一次出現的位置
參數:
返回值:
*/
char* strstr(const char *s, const char* s2);

strtok()

/*
功能:對strtok()的連續調用把s1指向的串分解為一系列記號,每個記號都由s2指向的串中的字元界定
參數:
返回值:
*/
char* strstr(const char* s1, const char* s2);

其他

memset()

/*
功能:把c的值複製到s指向的對象的前n個字元的每個字元中
參數:
返回值:
*/
void* memset(void* s, int c, size_t n);

strerror()

/*
功能:將errnum中的錯誤編號對應到一個錯誤信息串
參數:
返回值:
*/
char* strerror(int errnum);

strlen()

/*
功能:計算s指向的串的長度
參數:
返回值:
*/
size_t strlen(const char* s);

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 所謂不同的抽象類別,實際上是指同一個物理電路,可以在不同層次上用Verilog語言來描述。如果只從行為功能的角度來描述某一電路模塊,就稱作行為模塊。如果從電路結構的角度來描述該電路模塊,就稱作結構模塊。根據抽象的級別將Verilog的模塊分為5種不同的等級: 1)系統級 2)演算法級 3)RTL級(r ...
  • 系統:Windows 7 64位系統 安裝之前,首先下載軟體: Nginx: http://nginx.org/en/download.html PHP Stable PHP 5.6.26: http://php.net/downloads.php mysql: http://dev.mysql.c ...
  • (-1)寫在前面 這兩天讀《javaweb開發王者歸來》,學到Spring的PropertyPlaceholderConfigurer時出現一個問題,我已${jdbc.name}的形式賦值給bean中的屬性,用main方法測試後,輸出屬性的值仍然是${jdbc.name}。 (0)解決問題之路 a. ...
  • 感謝原作者:Vamei 出處:http://www.cnblogs.com/vamei 怎麼能快速地掌握Python?這是和朋友閑聊時談起的問題。 Python包含的內容很多,加上各種標準庫、拓展庫,亂花漸欲迷人眼。我一直希望寫一個快速的、容易上手的Python教程,而且言語簡潔,循序漸進,讓沒有背 ...
  • 感謝原作者:Vamei 出處:http://www.cnblogs.com/vamei Java是面向對象語言。這門語言其實相當年輕,於1995年才出現,由Sun公司出品。James Gosling領導了Java的項目小組。該項目的最初只想為家電設計一門容易移植的語言。然而,在獲得了Netscape ...
  • tail命令也是一個非常常用的文件查看類的命令,今天就為大家介紹下Linux tail命令的用法。 更多Linux命令詳情請看:Linux命令速查手冊 Linux tail命令主要用來從指定點開始將文件寫到標準輸出。很多人喜歡使用tail –f 來監控日誌文件。 一、Linux tail命令格式 L ...
  • 1.說明:Idea 下,項目對應於 Eclipse 下的 workspace,Module 對應於 Eclipse 下的項目。Idea 下,新添加的項目既可以單獨作為一個 Project,也可以作為一個 Project 下的 Module。 2.本篇文章介紹內容: (1)如何在 Project 新建 ...
  • 初學swift 但是網上只有很多swift用xib創建的cell,就算是有也不是我想要的。今天自己弄了一個不用xib純代碼寫的,來上代碼 自定義cell 下麵是controller 例外說一點懶載入 OC的懶載入 @property (nonatomic, strong) NSMutableArra ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...