C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr
生活随笔
收集整理的這篇文章主要介紹了
C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模擬實現字符串和內存操作函數(一)目錄:
- strlen
- strcpy
- strcat
- strcmp
- strstr
- strchr
strlen
size_t strlen(const char* str)
- 字符串以‘\0’作為結束標志,strlen函數返回的是在字符串中‘\0’前面出現的字符個數(不包含’\0’)。
- 參數指向的字符串必須要以‘\0’結束。
- 函數的返回值為size_t,是無符號類型。
- 因為是模擬庫函數,所以為了防止調用者放入空指針或者防止傳入的字符串被修改,下面的函數中會用到assert函數和const。
strcpy
char* strcpy(char* dst,const char* src)
- strcpy把含有’\0’結束符的字符串復制到另一個地址空間,返回值的類型為char*。
- 源字符串必須以’\0’結束
- 會將源字符串的’\0’拷貝到目標空間
- 目標空間必須可變,并且具有足夠大的空間來存放源字符串
strcat
char* strcat(char* dst,const char* src)
- strcat把src所指向的字符串(包括“\0”)復制到dest所指向的字符串后面。
- 源字符串必須以’\0’結束
- 會將源字符串的’\0’拷貝到目標空間
- 目標空間必須可變,并且具有足夠大的空間來存放源字符串
strcmp
int my_strcmp(const char* str1, const char* str2)
- strcmp兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇’\0’為止。
- 源字符串必須以’\0’結束
- 當str1<str2時,返回為負數,
- 當str1=str2時,返回值= 0
- 當str1>str2時,返回為正數
- 需要將類型強轉為unsighed char* ,因為對比的是ASCII碼值,但是當大于127時會自動將其按照補碼的形式轉換為負數,則會產生錯誤
strstr
char* my_strstr(const char* src, const char* sub)
- strstr返回一個指針,指向sub在src中首次出現的位置。
strchr
char* strchr(char* dst,const char* src)
- strchr返回一個指向該字符串中第一次出現的字符的指針,如果字符串中不包含該字符則返回NULL空指針。
總結
以上是生活随笔為你收集整理的C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言程序设计 | 指针(二):常量指针
- 下一篇: C语言程序设计 | 模拟实现内存操作函数