一.strtok
原型:char *strtok(char *s, const char *delim);
功能:分解字串為一組字串。s為要分解的字串,delim為分隔符字串。
說明:strtok()用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串,當strtok()在引數s的字串中發現到引數delim的分割字元時則會將該字元改為\0 字元。在第一次呼叫時,strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。每次呼叫成功則返回被分割出片段的指標。
返回值:
從s開頭開始的乙個個被分割的串。當沒有被分割的串時則返回null。
所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點。
實際運用
(strtok函式會破壞被分解字串的完整,呼叫前和呼叫後的s已經不一樣了。如果
要保持原字串的完整,可以使用strchr和sscanf的組合等。)
#include #include using namespace std;
int main()
{ char sentence="this is a sentence with 7 tokens";
cout<<"the string to be tokenized is:\n"《函式第一次呼叫需設定兩個引數。第一次分割的結果,返回串中第乙個 ',' 之前的字串,也就是上面的程式第一次輸出abc。
第二次呼叫該函式strtok(null,","),第乙個引數設定為null。結果返回分割依據後面的字串,即第二次輸出d。
strtok是乙個執行緒不安全的函式,因為它使用了靜態分配的空間來儲存被分割的字串位置
執行緒安全的函式叫strtok_r,ca
運用strtok來判斷ip或者mac的時候務必要先用其他的方法判斷'.'或':'的個數,因為用strtok截斷的話,比如:"192..168.0...8..."這個字串,strtok只會擷取四次,中間的...無論多少都會被當作乙個key
有的操作符過載函式只能是友元函式
運算子過載為成員函式,第乙個引數必須是本類的物件。而 和 的第乙個運算元一定是ostream型別,所以 只能過載為友元函式。1 只能為友元 輸入流操作 輸出流操作 1 includeusing namespace std class test private int a int b ostream ...
內建函式 str
str 將資料強制轉型為字串。每種資料型別都可以強制轉型為字串。str 1 1 str 1,2,3,4 1,2,3,4 str types 對於簡單的資料型別比如整型,你可以預料到 str 的正常工作,因為幾乎每種語言都有乙個將整型轉化為字串的函式。然而 str 可以作用於任何資料型別的任何物件。這...
str 內建函式
字串查詢 find,index,rfind 右查詢 lfind 左查詢 find 查詢字串是否包含某個字串,返回第一次發現的位置,找不到時返回 1 index 與find幾乎相同,但是找不到值時,返回錯誤 判斷類的函式 此函式特點一般是is開頭 isalpha 判斷是否是字母,需要注意兩點,1 此函...