分词是对字符串的基本操作,比如一行数据表示一个记录,记录中使用的分割符就可以做为分词符号,使用这个分词符号,可以得到记录的所有属性
C 的标准库中 “strtok” 提供了这样的功能,它的使用方式如下:
#include <stdio.h>
#include <string.h>
#include <assert.h>
class CStrTok
{
public:
void init_pattern(char *pattern) {
strncpy(m_pattern, pattern, PATTERN_SIZE);
}
void token(const char *s) {
m_nums_of_token = 0;
memset(m_token_container, 0, TOKEN_SIZE_MAX);
strncpy(m_buf, s, BUFSIZ);
m_token_container[m_nums_of_token] = strtok(m_buf, m_pattern);
while (m_token_container[m_nums_of_token] != NULL) {
++m_nums_of_token;
assert(m_nums_of_token!=TOKEN_SIZE_MAX);
m_token_container[m_nums_of_token] = strtok(NULL, m_pattern);
}
}
size_t nums_of_token() {
return m_nums_of_token;
}
char * GetTokenStr(int index) {
return m_token_container[index];
}
void reset() {
m_nums_of_token = 0;
}
priva