本文總結記錄c語言中字串操作介面函式的使用及關鍵字sizeof和strlen操作的區別
sizeof 與 strlen
定義字串常量
char
*str =
"hello world"
;// *str 為指向 .rodata 空間中存放字元 'h' 的位址
該字串常量在 .rodata 中建立連續的空間來存放字串,此時該字串為唯讀,不可修改
strcpy 和 strncpy
// 將src指向空間中的字串,複製到dest指向的空間中,返回dest
char
*strcpy
(char
*dest,
const
char
*src)
// 將src指向空間中的前n個字元,複製到dest指向的空間中,返回dest
char
*strncpy
(char
*dest,
const
char
*src,
int n)
strcat 和 strncat// 將src所指的字串附加到dest所指字串的末尾
char
*strcat
(char
*dest,
const
char
*src)
// 將src所指的前n個字元附加到dest所指的字串末尾
char
*strncat
(char
*dest,
const
char
*src,
int n)
strcmp 和 strncmpint
strcmp
(char
*dest,
char
*src)
intstrncmp
(char
*dest,
const
char
*src,
int n)
strcmp 比較兩個字串 dest 和 src 的大小,以 『\0』 結束;
strncmp 只比較兩個字串 dest 和 src 前 n 個字元的大小;
兩者返回值如下:
當返回值大於0,說明前面的字串 dest 大於後面的字串 src;
當返回值小於0,說明前面的字串 dest 小於後面的字串 src;
當返回值等於0,說明前面的字串 dest 等同於後面的字串 src;
void
fun_compare()
else
printf
("輸入錯誤\n");
}
strcasecmp 和 strncasecmp
這兩個函式類似於 strcmp 和 strncmp,區別在於比較字串時忽略大小寫
#
include
intstrcasecmp
(const
char
*s1,
const
char
*s2)
;int
strncasecmp
(const
char
*s1,
const
char
*s2,
size_t n)
;
void
testcasecmp()
執行列印:return: 0
strchr 和 strrchr
// 在dest指向的字串中,從第0個元素開始向後找字元c,找到就終止
char
*strchr
(const
char
*dest,
char c)
// 從最後乙個元素開始向前找字元c,找到就終止,並返回該字元的指標,否則返回null
char
*strrchr
(const
char
*dest,
char c)
void
find_char()
輸出兩個字元 o 的位址不一樣
strstr 和 strrstr
// 從str1中順序查詢str2所指的字串
char
*strstr
(char
*str1,
const
char
*str2)
// 從str1中逆序查詢str2所指的字串
char
*strrstr
(char
*str1,
const
char
*str2)
strtod// str 為將要進行轉換的字串
// endptr 為 str 中數值後的下乙個字元位置
double
strtod
(const
char
*str,
char
**endptr)
返回值為:如果成功轉換字串 str 中的數值,則返回該數值的 double 型,否則返回 0.0
void
transform_string()
strtok// 將目標字串 str 分解為一組字串,delim 為分隔符
char
*strtok
(char
*str,
const
char
*delim)
用法如下:
#
include
#include
intmain
(int argc,
char
*ar**)
return0;
}
atoi 和 atol// 將str中表示的數字轉換成int型的數字
intatoi
(const
char
*str)
// 將str中表示的數字轉換成long int型的數字
long
atol
(const
char
*str)
返回值為轉換後的型別值。
void
transform_data_type
(char
*buf)
sizeof為 c 語言中的關鍵字,而strlen為求字串長度的函式。
關鍵字 sizeof
sizeof(普通變數) 返回該變數型別所佔的空間大小,int 變數返回 4, char 變數返回 1
sizeof(指標變數) 不管該指標變數為何種型別,返回值都為 4 / 8,因為sizeof返回該變數空間的大小
sizeof(陣列變數) 返回整個陣列的空間大小,即:陣列元素個數 x sizeof(陣列型別)
函式 strlen
int
strlen
(char
*str)
通過函式原型可以看出,strlen 傳入乙個字串的首位址,返回該字串的長度,長度不包括最後的 『\0』 空字元。 c字串函式及指標操作
c 的程式設計師對c中的字串指標操作的函式卻並不是相當的熟悉。而c中的這些字串的指標操作函式有的時候也是必須要面對的,比如我們的庫要提供c函式介面,保持向後相容和跨平台,還有我們經常使用一些第三方的庫中都或多或少的使用到了這些c中的指標操作函式,所以下面列出c的指標操作函式,幫助大家熟悉之。1.模擬...
c 字串及陣列操作
字串操作 取當前時間 string time convert.tostring datetime.today split new char textbox1.text time 0 以空格作為分界點 陣列概述 c 陣列從零開始建立索引,即陣列索引從零開始。c 中陣列的工作方式與在大多數其他流行語言中...
c 字串及陣列操作
字串操作 取當前時間 string time convert.tostring datetime.today split new char textbox1.text time 0 以空格作為分界點 陣列概述 c 陣列從零開始建立索引,即陣列索引從零開始。c 中陣列的工作方式與在大多數其他流行語言中...