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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...