strtok()用來将字元串分割成一個個片段。參數s指向欲分割的字元串,參數delim則為分割字元串中包含的所有字元。當strtok()在參數s的字元串中發現參數delim中包含的分割字元時,則會将該字元改為\0 字元。在第一次調用時,strtok()必需給予參數s字元串,往後的調用則将參數s設定成NULL。每次調用成功則傳回指向被分割出片段的指針,如果查找不到delim中的字元時,傳回目前strtok的字元串的指針。
示例:
#include "stdafx.h"
#include <iostream>
#include <string>
int main()
{
std::string scrStr = "This is a test";
char *buff = (char *)malloc(scrStr.size() + 1);
memcpy(buff, scrStr.c_str(), scrStr.size() + 1);
char *splitStr = strtok(buff, " ");
while (splitStr)
{
std::cout << splitStr << std::endl;
splitStr = strtok(nullptr," ");
}
free(buff);
getchar();
return 0;
}
列印結果: