c c 中的字元函式和字串函式

2021-10-04 23:41:26 字數 3904 閱讀 7623

c語言中對字元和字串的處理很是頻繁,但是c語言本身是沒有字串型別的,字串通常放在 常量字串 中或者 字元陣列 中。 字串常量 適用於那些對它不做修改的字串函式.

size_t strlen (

const

char

* str )

;

字串已經 '\0』作為結束標誌,strlen函式返回的是在字串中 '\0』前面出現的字元個數(不包含 『\0』)。引數指向的字串必須要以 '\0』結束。注意函式的返回值為size_t,是無符號的( 易錯 )。

(1)strlen函式的使用

#include

intmain()

else

return0;

}

(2)模擬實現str冷函式,三種方式:

方式1:計數器方式

int

my_strlen

(const

char

* str)

return count;

}

方法2,//不能建立臨時變數計數器,採用遞迴的方式

int

my_strlen

(const

char

* str)

else

}

方法3 ,指標-指標的方式

int

my_strlen

(char

*s)return p-s;

}

char

*strcpy

(char

* destination,

const

char

* source )

;

源字串必須以』\0』 結束。

會將源字串中的』\0』 拷貝到目標空間。

目標空間必須足夠大,以確保能存放源字串。

目標空間必須可變。

(1)模擬實現strcpy函式

//1.引數順序

//2.函式的功能,停止條件

修飾指標

//5.函式返回值

//6.題目出自《高質量c/c++程式設計》書籍最後的試題部分

#include

#include

char

*mystrcpy

(char

* ch1,

const

char

* ch2)

*temp =

'\0'

;return ch1;

}char

*my_strcpy

(char

*dest,

const

char

*src)

return ret;

}int

main()

;char ch2=

;//printf("%s\n", mystrcpy(ch1, ch2));

printf

("%s\n"

,my_strcpy

(ch1, ch2));

return0;

}

char

* strcat (

char

* destination,

const

char

* source )

;

源字串必須以』\0』 結束。

目標空間必須有足夠的大,能容納下源字串的內容。

目標空間必須可修改。

(1)模擬實現strcat函式

#include

#include

char

*mystrcat

(char

* ch1,

const

char

* ch2)

while

(*ch2 !=

'\0'

)*temp =

'\0'

;return ch1;

}char

*my_strcat

(char

*dest,

const

char

*src)

while((

*dest++

=*src++))

return ret;

}int

main()

;char ch2=

;printf

("%s\n"

,mystrcat

(ch1, ch2));

printf

("%s\n"

,my_strcat

(ch1, ch2));

return0;

}

int strcmp (

const

char

* str1,

const

char

* str2 )

;

標準規定:

第乙個字串大於第二個字串,則返回大於0的數字

第乙個字串等於第二個字串,則返回0

第乙個字串小於第二個字串,則返回小於0的數字

(1)模擬實現strcmp函式

#include

#include

intmystrcmp

(const

char

*ch1,

const

char

* ch2)

ch1++

; ch2++;}

if(result >0)

result =1;

else

if(result <0)

result =-1

;return result;

}int

my_strcmp

(const

char

* src,

const

char

* dst)

intmain()

;char ch2=

;printf

("%d\n"

,mystrcmp

(ch1, ch2));

printf

("%d\n"

,my_strcmp

(ch1, ch2));

return0;

}

char

* strerror (

int errnum )

;

(1)strerror函式的使用

#include

#include

#include

//必須包含的標頭檔案

intmain()

//errno: last error number

return0;

}

char

* strstr (

const

char*,

const

char*)

;

(1)strstr函式的使用

/* strstr example */

#include

#include

intmain()

字元函式和字串函式

size t strlen const char str 模擬實現strlen 字串長度 include include size t mystrlen const char str return count int main 字串拷貝 char strcpy char destination,co...

字元函式和字串函式

求字串的長度 乙個帶 0 的字元陣列才叫字串 strlen函式 size t strlen const char str strlen函式返回的是不包含 0 的字元個數 引數指向的字串必須以 0 結束 函式的返回值為size t,是無符號的 unsigned int 函式的模擬實現 方法1 計數器方...

C C 字串處理函式

c include 1.字串長度 extern int strlen char s 返回s的長度,不包括結束符null 2.字串比較 extern int strcmp char s1,char s2 extern int strncmp char s1,char s2,int n 比較字串s1和s...