C語(yǔ)言的字符函數(shù)和字符串函數(shù)詳解
一、字符&字符串函數(shù)
1.strlen--求字符串長(zhǎng)度
釋:是所求‘\0’之前的字符個(gè)數(shù)。庫(kù)函數(shù)類型-size_t(const char*)
size_t == unsigned int
#include <string.h> int main() { char arr[] = "hello world"; printf("%d\n",strlen(arr)); return 0; }
長(zhǎng)度不受限 | 長(zhǎng)度受限 |
strcpy | strncpy |
strcat | strncat |
strcmp | strncmp |
2.1.strcpy--拷貝字符串
庫(kù)函數(shù)類型-char* (char*, const char*)
源字符串-被拷貝字符串
釋:‘\0’是拷貝字符串終止拷貝的條件,且目標(biāo)空間必須有足夠大的空間放下源字符串。
#include <string.h> int main() { char arr1[20] = { 0 }; char arr2[] = "hello world"; strcpy(arr1,arr2); printf("%s\n",arr1); return 0; }
2.2.strcat--追加字符串/鏈接字符串
庫(kù)函數(shù)類型-char* (char*, const char*)
釋:通過(guò)找到目標(biāo)字符串里的‘\0’,再將源字符追加過(guò)去
#include <string.h> int main() { char arr1[20] = "hello "; char arr2[] = "world"; printf("%s\n",strcat(arr1,arr2)); return 0; }
2.3.strcmp--字符串比較
庫(kù)函數(shù)類型-int (const char*, const char*)
釋:將左字符串與右字符串比較:小于返回小于0值,等于返回0,大于返回大于0值。
比較方式:將兩個(gè)字符串,按從左到右,一個(gè)一個(gè)字符的比較,按對(duì)應(yīng)的ascll碼進(jìn)行比較。
等于的情況
#include <string.h> int main() { char arr1[] = "abc"; char arr2[] = "abc"; printf("%d\n",strcmp(arr1,arr2)); return 0; }
大于的情況
#include <string.h> int main() { char arr1[] = "abc"; char arr2[] = "abd"; printf("%d\n",strcmp(arr1,arr2)); return 0; }
小于的情況
#include <string.h> int main() { char arr1[] = "abd"; char arr2[] = "abc"; printf("%d\n",strcmp(arr1,arr2)); return 0; }
2.4.strncpy--受限的字符串拷貝
庫(kù)函數(shù)類型-char* (char*, const char*,size_t)
size_t == unsigned int
釋:可以自己選擇想要拷貝的字符個(gè)數(shù)。
注:如果選擇拷貝的字符個(gè)數(shù),大于源字符的長(zhǎng)度,則多的部分拷貝為‘\0’
#include <string.h> int main() { char arr1[20] = "abd"; char arr2[] = "hello world"; printf("%s\n",strncpy(arr1,arr2,5)); return 0; }
2.5.strncat--受限連接字符串
庫(kù)函數(shù)類型-char* (char*,const char*,size_t)
釋:可以自己選擇想要追加/連接的字符個(gè)數(shù)。
注:如果追加的字符長(zhǎng)度大于源字符串長(zhǎng)度,則扔在‘\0’處就停止了,如果不足源字符長(zhǎng)度,則自動(dòng)追加一個(gè)‘\0’
#include <string.h> int main() { char arr1[20] = "abd "; char arr2[] = "hello world"; printf("%s\n",strncat(arr1,arr2,5)); return 0; }
2.6.strncmp--受限的比較字符串
函數(shù)庫(kù)類型-int (const char*,const char*,size_t)
釋:可以自己選擇想要比較的字符長(zhǎng)度
#include <string.h> int main() { char arr1[20] = "abd "; char arr2[] = "hello world"; printf("%d\n",strncmp(arr1,arr2,5)); return 0; }
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程
QT眾所周知是一個(gè)開源的,以C++為底層的可視化工具庫(kù),下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04C++學(xué)習(xí)之虛函數(shù)表與多態(tài)詳解
這篇文章主要為大家詳細(xì)介紹了C++中虛函數(shù)表與多態(tài)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C++有一定的幫助,感興趣的小伙伴可以了解一下2023-03-03C語(yǔ)言實(shí)現(xiàn)電話簿管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話簿管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11關(guān)于C++類的成員初始化列表的相關(guān)問題
下面小編就為大家?guī)?lái)一篇關(guān)于C++類的成員初始化列表的相關(guān)問題。小編覺得挺2016-05-05詳解C++虛函數(shù)中多態(tài)性的實(shí)現(xiàn)原理
C++是一種面向?qū)ο蟮木幊陶Z(yǔ)言,在C++中,虛函數(shù)是實(shí)現(xiàn)多態(tài)性的關(guān)鍵。本文就來(lái)探討一下C++虛函數(shù)中多態(tài)性的實(shí)現(xiàn)原理及其在面向?qū)ο缶幊讨械膽?yīng)用吧2023-05-05在c和c++中實(shí)現(xiàn)函數(shù)回調(diào)
如何在c和c++中實(shí)現(xiàn)函數(shù)回調(diào)呢?現(xiàn)在小編就和大家分享一下在c/c++中實(shí)現(xiàn)函數(shù)回調(diào)的示例代碼,需要的朋友可以參考下2013-07-07