博客專欄

EEPW首頁(yè) > 博客 > Linux C - C基礎(chǔ)篇九(c庫(kù)中字符串函數(shù)介紹)

Linux C - C基礎(chǔ)篇九(c庫(kù)中字符串函數(shù)介紹)

發(fā)布人:嵌入式Linux 時(shí)間:2023-01-12 來源:工程師 發(fā)布文章

以下我總結(jié)了c標(biāo)準(zhǔn)庫(kù)中最常用的字符串函數(shù)的用法,希望對(duì)剛剛學(xué)習(xí)c基礎(chǔ)的同學(xué)能有所幫助;對(duì)于初學(xué)者可以根據(jù)我寫的例子自己動(dòng)手敲敲代碼,也可以在這個(gè)基礎(chǔ)上進(jìn)行改動(dòng)嘗試,在這個(gè)過程中可以發(fā)現(xiàn)問題,解決這些問題的過程你會(huì)學(xué)到更多的知識(shí)。

字符串長(zhǎng)度

通過Linux下的man工具可以很方便的查看c庫(kù)里面的函數(shù)接口的詳細(xì)信息,例如man strlen,可以獲取strlen這個(gè)函數(shù)的信息:

  • 函數(shù)原型:size_t strlen(const char *s);

  • 功能:計(jì)算一個(gè)字符串的長(zhǎng)度

  • 需要包含頭文件:#include <string.h>

  • 參數(shù):需要傳入一個(gè)字符串

  • 返回值:返回傳入字符串的字節(jié)個(gè)數(shù),即字符串的長(zhǎng)度

字符串轉(zhuǎn)換函數(shù)
  • 函數(shù)原型:函數(shù)原型如上圖

  • 功能:分別將字符串轉(zhuǎn)換為int、long、long long類型的整數(shù)

  • 需要包含頭文件:#include <stdlib.h>

  • 參數(shù):要轉(zhuǎn)換成整數(shù)的字符串

  • 返回值:分別為對(duì)應(yīng)類型的整數(shù)

需要注意的是,當(dāng)傳入atoi的參數(shù)是非整數(shù)的字符串時(shí),例如"hello",那么將返回0。

字符串復(fù)制
  • 函數(shù)原型:函數(shù)原型如上圖

  • 功能:將一個(gè)字符串復(fù)制到另一個(gè)字符串變量中

  • 需要包含頭文件:#include <string.h>

  • 參數(shù):dest:目的字符串 src:源字符串 size:要cp的大小

  • 返回值:成功則返回目的字符串的首地址

從上面的例子可以看出,strncpy和strcpy的區(qū)別是strncpy可以指定要復(fù)制的字符串的大小。

字符串比較
  • 函數(shù)原型:函數(shù)原型如上圖

  • 功能:將一個(gè)字符串和另一個(gè)字符串的大小進(jìn)行比較

  • 需要包含頭文件:#include <string.h>

  • 參數(shù):s1、s2要進(jìn)行比較的兩個(gè)字符串的首地址,size:對(duì)兩個(gè)字符串的前size個(gè)字節(jié)進(jìn)行比較

  • 返回值:如果兩個(gè)字符串相等則返回0,如果不相等則返回不相等的兩個(gè)字符的ascii碼的差值

字符串的大小比較是從兩個(gè)字符串的第一個(gè)字符依次往后比較的,比較的是每個(gè)字節(jié)的ascii碼值的大小;從上面的例子可以看出,strncmp可以只比較兩個(gè)字符串的前size個(gè)字節(jié)。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

熱像儀相關(guān)文章:熱像儀原理


關(guān)鍵詞: 字符串函數(shù)

技術(shù)專區(qū)

關(guān)閉