C語(yǔ)言字符串函數(shù)介紹與模擬實(shí)現(xiàn)詳解
strlen
strlen | |
頭文件 | #include <string.h> |
格式 | size_t strlen( const char* str) |
功能 | 計(jì)算字符串長(zhǎng)度 |
返回值 | 返回字符串的長(zhǎng)度 |
//strlen的模擬實(shí)現(xiàn) #include<stdio.h> #include<assert.h> size_t my_strlen(const char* str) { assert(str); int count = 0; while (*str != '\0') { str++; count++; } return count; }
strcat
strcat | |
頭文件 | #include <string.h> |
格式 | char* strcat(char* dest,const char* src) |
功能 | 追加子字符串到目標(biāo)字符串后 |
返回值 | 目標(biāo)字符串的首地址 |
//strcat模擬實(shí)現(xiàn) #include<stdio.h> #include<assert.h> char* my_strcat(char* str1,const char *str2) { assert(str1, str2); char* tmp = str1; //找出str1中的斜杠零 while (*str1) { str1++; } //在str1上追加 while (*str1++=*str2++) { ; } return tmp; } int main() { char arr1[20] = "hello"; char arr2[] = " world"; printf("%s",my_strcat(arr1,arr2)); return 0; }
strcpy
strcpy | |
頭文件 | #include <string.h> |
格式 | char* strcpy(char* dest,char* src) |
功能 | 將參數(shù)src字符串拷貝至參數(shù)dest所指的地址 |
返回值 | 目標(biāo)字符串的首地址 |
//模擬實(shí)現(xiàn)strcpy #include<stdio.h> #include<assert.h> char* my_strcpy(char *str2,char *str1) { assert(str1, str2); char* tmp = str2; while (*str1) { *str2++ = *str1++; } return tmp; } int main() { char arr1[20] = "abcdef"; char arr2[20] = "xxxxxxxxxxxxx"; my_strcpy(arr2,arr1); printf("%s", arr2); return 0; }
strcmp
strcmp | |
頭文件 | #include <string.h> |
格式 | int strcmp (const char* str1,const char* str2) |
功能 | 比較兩字符串的大小 |
返回值 | str1>str2 返回值>0 str1<str2 返回值<0 str1=str2 返回值=0 |
//strcmp模擬實(shí)現(xiàn) #include<stdio.h> #include<assert.h> int strcmp(const char* str1,const char* str2) { assert(str1, str2); while (*str1 == *str2) { str1++; str2++; } return *str1 - *str2; } int main() { char arr1[] = "abc"; char arr2[] = "abcd"; printf("%d", strcmp(arr1, arr2)); return 0; }
strstr
strstr | |
頭文件 | #include <string.h> |
格式 | char* my_strstr(const char*str,const char* substr) |
功能 | 在目標(biāo)字符串中查找子字符串 |
返回值 | 目標(biāo)字符串中,與子字符串相同的字符串首地址 |
#include<stdio.h> #include<assert.h> char* my_strstr(const char*str,const char* substr) { char* s1 = str;//防止str被破壞 char* s2 = substr;//防止substr被敗壞 char* cur = str;//存儲(chǔ)中間地址 assert(str && substr); //排除substr為空 if (substr == '\0') { return str; } while (*cur) { s1 = cur; s2 = substr; while (*s1 && *s2 && *s1 == *s2) { s1++; s2++; } if (*s2 == '\0') return cur; cur++; } return NULL; } int main()//模擬實(shí)現(xiàn)strstr函數(shù) { char arr1[] = "abbbcdef"; char arr2[] = "bbc"; printf("%s", my_strstr(arr1, arr2)); return 0; }
到此這篇關(guān)于C語(yǔ)言字符串函數(shù)介紹與模擬實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言 字符串函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C語(yǔ)言字符串函數(shù),字符函數(shù),內(nèi)存函數(shù)使用及模擬實(shí)現(xiàn)
- C語(yǔ)言超全面講解字符串函數(shù)
- C語(yǔ)言超詳細(xì)講解字符串函數(shù)和內(nèi)存函數(shù)
- C語(yǔ)言字符串函數(shù)與內(nèi)存函數(shù)精講
- C語(yǔ)言實(shí)例問(wèn)題探究字符串函數(shù)的應(yīng)用
- C語(yǔ)言詳細(xì)分析常見(jiàn)字符串函數(shù)與模擬實(shí)現(xiàn)
- C語(yǔ)言的字符函數(shù)和字符串函數(shù)詳解
- C語(yǔ)言進(jìn)階教程之字符函數(shù)&字符串函數(shù)
- C語(yǔ)言字符串函數(shù)模擬實(shí)現(xiàn)流程介紹
相關(guān)文章
C++實(shí)現(xiàn)數(shù)組中元素組合出最大值
這篇文章主要介紹了C++實(shí)現(xiàn)數(shù)組中元素組合出最大值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05CFileDialog的鉤子函數(shù)解決對(duì)話框的多選之DoModal問(wèn)題
前幾天領(lǐng)導(dǎo)問(wèn)我一個(gè)問(wèn)題:就是使用CFileDialog類在設(shè)置多選時(shí)選中的文件所放的文件緩沖區(qū)不知設(shè)置多大合適,本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12VC++中HTControl控制類使用之CHTDlgBase對(duì)話框基類實(shí)例
這篇文章主要介紹了VC++中HTControl控制類使用之CHTDlgBase對(duì)話框基類,是比較豐富而實(shí)用的功能,需要的朋友可以參考下2014-08-08C語(yǔ)言實(shí)現(xiàn)linux網(wǎng)卡檢測(cè)改進(jìn)版
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)linux網(wǎng)卡檢測(cè)的改進(jìn)版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06C++實(shí)現(xiàn)時(shí)間轉(zhuǎn)換及格式化
這篇文章主要為大家詳細(xì)介紹了C++中實(shí)現(xiàn)時(shí)間轉(zhuǎn)換及格式化的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11老生常談C語(yǔ)言動(dòng)態(tài)函數(shù)庫(kù)的制作和使用(推薦)
下面小編就為大家?guī)?lái)一篇老生常談C語(yǔ)言動(dòng)態(tài)函數(shù)庫(kù)的制作和使用(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08C語(yǔ)言中strspn()函數(shù)和strcspn()函數(shù)的對(duì)比使用
這篇文章主要介紹了C語(yǔ)言中strspn()函數(shù)和strcspn()函數(shù)的對(duì)比使用,strspn是計(jì)算屬于字符串的字符數(shù)而strcspn則是判斷不屬于,需要的朋友可以參考下2015-08-08