本章是網際網路公司裡筆試最愛考的問題之一。主要的函式有:
字串長度函式:strlen
長度不受限制的字串函式: strcpy strcat strcmp
長度受限制的字串函式: strncpy strncat strncmp
字串查詢: strstr strtok
錯誤資訊報告: strerror
字元操作 記憶體操作函式: memcpy memmove memset memcmp
三.長度受限制的字串函式:
字串函式(string processing function)也叫字串處理函式,指的是程式語言中用來進行字串處理的函式。
c語言中對字元和字串的處理很是頻繁,但是c語言本身是沒有字串型別的,字串通常放在常量字串中 或者字元陣列中。 字串常量適用於那些對它不做修改的字串函式。
strlen
函式是c語言中計算字串長度的函式。
size_t strlen (
const
char
* str )
;
1.字串已經 『\0』 作為結束標誌,strlen函式返回的是在字串中 『\0』 前面出現的字元個數(不包含 『\0』 )。2. 引數指向的字串必須要以 『\0』 結束。
3.注意函式的返回值為size_t,是無符號的.
strlen
函式的實現:
計數器方式:
intmy_strlen1
(const
char
* str)
return count;
}
遞迴的方式:
intmy_strlen2
(const
char
* str)
指標的方式
intmy_strlen3
(char
*s)
char
*strcpy
(char
* dest,
char
* src)
功 能: 將引數源位址src
字串拷貝至引數目標位址dest
所指的位址
返回值: 返回引數dest
的字串起始位址
說明:
1.源字串必須以』\0』結束2.會將源字串的』\0』拷貝到目標空間
3.目標空間必須可變 如果引數dest所指的記憶體空間不夠大,可能會造成緩衝溢位的錯誤情況,在編寫程式時需特別留意,或者用
strncpy()
來取代模擬實現:
char
*my_strcpy
(char
*dest,
const
char
*src)
char
*strcat
(char
* dest,
const
char
* src)
**實現如下:
char
*my_strcat
(char
*des,
char
*src)
while
(*src)
*des =
'\0'
;return p;
}
int strcmp (
const
char
* str1,
const
char
* str2)
功能:字串比較
返回值:若引數s1和s2字串相同則返回0,s1若大於s2則返回大於0的值,s1若小於s2則返回小於0的值
說明:
int
my_strcmp
(const
char
* src,
const
char
* dst)
char
*strncpy
(char
* dest,
const
char
* src,size_t num)
功能:拷貝src
字串的前num
個字元至dest
strncpy函式的實現
char
*mystrncpy
(char
*dest,
const
char
*src,
int count)
return p;
}
char
* strncat (
char
* dest,
const
char
* src,size_t num)
**的實現:
char
*mystrncat
(char
*dest,
const
char
*src,
int n)
while
(n &&
(*dest++
=*src++)!=
'\0'
) dest =
'\0'
;return ret;
}
int
strncmp
(const
char
* str1,
const
char
* str2,size_t num)
功能:指定長度比較
返回值:同strcmp
比較到出現另個字元不一樣或者乙個字串結束或者num個字元全部比較完。**實現:
int
my_strncmp
(const
char
*str1,
const
char
*str2, size_t count)
return
*str1 -
*str2;
}
C語言之字串
字元就是符號 圖案,在計算機中以整數形式儲存,當需要顯示時會根據ascii表中的對應關係,顯示相應的符號或圖案。字元型別 char 的資料 如字元a,a,0,等 在記憶體中以對應的ascii碼存放,不同字元所對應的ascii碼見下表。計算機用乙個位元組 8個二進位制位 儲存乙個字元,例如,字元a的a...
C語言之字串處理函式
c語言中字串處理函式介紹 下面介紹8種基本的常用的字串處理函式,在數值陣列中也常常用到 部分函式 所有的c語言編譯系統中一般都提供這些函式。1 puts函式 輸出字串的函式 一般的形式為puts 字串組 作用 將乙個字串輸出到終端。如,char乙個string,並賦予初值。呼叫puts string...
C語言之字串與指標
1 字串的儲存與訪問 字串的訪問 char str n 第i個字元 str i 思考?以下寫法是否正確?char s1 n s1 welcome s1 welcome 錯誤!必須逐一賦值或使用函式,且陣列長度要足夠大。可以使用字元指標解決 char s s welcome 或 char s welc...