本文比較了c,c++和python中關於字串處理的一些庫函式。這裡你可能會奇怪,python和c/c++本來就不是同一層次上的語言,為什麼要放在一起比較。這裡就是參照python來看看c++的字串處理目前是一種什麼情況。python現在也屬於一種很熱門的指令碼語言,它以其容易上手著稱。它的庫中提供了眾多的函式、類和模組支援對字串的處理。本文期望能夠為使用c++的人提供一定的幫助。
在比較值錢,先區分一下c/c++中一下三個關於字串處理的標頭檔案的區別。
#include #include #include
第乙個是標準的c的字串處理的庫,它處理的物件是char 。第二個是經過c++包裝的c標準字串處理庫,也就是說他們內容其實是完全一樣的,它處理的當然還是char 。第三個就是c++中的string類庫。本文做的比較主要是c string.h,c++ string和python str。其中c++中字串處理的庫,不僅僅包含了stl中的也包含了準標準庫boost中的有關字串處理的內容。
cc++
python
型別轉換
boost/conversion/lexical_cast
int(),float(),long()
元素訪問
iterators, , at,
'__getitem__'
修改元素
assign
附加strcat
strncat
__add__,'join'
插入insert
刪除erase
替換replace
『replace』』translate』
切片,子字串
memcpy,memmove
strcpy,strncpy
substr
'__getslice__'
比較memcmp,strcmp,
strcoll,strncmp,strxfrm
compare
查詢memchr,strchr,strcspn
strpbrk,strrchr,strspn
strstr,strtok
find,rfind,find_first_of,
find_last_of,
find_first_not_of,
find_last_not_of,
boost/string_algor
『find』』index』』rfind』』rindex』 ,
_contains__'『count』
大小及容量
strlen
size,length,max_size,
resize,capacity,
reserve,clear,empty
__len__
修剪boost/string_algor
『strip』』rstrip』』expandtabs』
』ljust』』lstrip』』rjust』』center』』zfill』
大小寫boost/string_algor
『lower』』swapcase』』upper』』title』 capitalize
編譯碼boost/locale
『decode』』encode』
特點判斷
boost/string_algor
『endswith』』isalnum』』isalpha』
』isdigit』』islower』』isspace』』istitle』
』isupper』』startswith』
分割boost/string_algor
『rpartition』』rsplit』』splitlines』』split』』partition』
格式化boost/format
『format』
正規表示式
boost/regex,boost/xpressive
re 從上面的比較可以清晰的看出,對於字串的處理,c更加直接,功能也更少,更基本,可以用它來寫成更加複雜的函式。而c++ string stl也是提供比較基本的函式,而boost則剛好給string提供了較多的更加實用的功能,彌補了c++這方面的缺陷,使得c++更加容易上手。因此在使用c++的時候結合boost已經基本上可以像寫python那樣方便的使用庫了。
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...
C C 字串處理函式
c char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給st1,在最後不要加...
C C 字串處理函式
c char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給st1,在最後不要加...