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