当前位置:首页 >> 数学 >>

使用strtok


下面的代码从含有多个结束符的字符串中分离出单词来,需要对 strtok_s 有清楚的认识。 这段代码是我在写一个处理文件中单词个数时用来分离读取到的字符串中的单词时写的, 亲 测可用~

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

void ParseBuffer(CWordCounter *pCounter, CWordBuffer *buf) { char *strSrc = buf->m_buff; 块首地址 char *strDelim = " \r\t\n"; 中单词之间的分隔符 char *strToken = NULL; 指向将被处理的单词 char *next_token = NULL; 存缓冲块中下一个将被读取的单词的位置 //保 // //缓冲块 //缓冲

string str; 存分离出来的单词 int nWordTotalInBytes = buf->m_nWordLengthInBytes; //需要被处理的单词总字节数 //保

strToken = strtok_s(strSrc, strDelim, &next_token);

while (1) { while (NULL != strToken) { str.assign(strToken); pCounter->InsertItem(str); strToken = strtok_s(NULL, strDelim, &next_token); }//退出循环表示该部分单词分析的时候遇到了

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

NULL 结束符,继续分离缓冲块中剩下的字符

if ((next_token+2) > (strSrc+nWordTotalInBytes)) 下,不然很容易出错! {//移动位置超过了最后一个有效字符 break; } //这里最好自己用笔画一

//移动到下一个开始扫描的字符 while ( ((next_token+1) < (strSrc+nWordTotalInBytes)) //没有超过最后一个有效字符 && !sw::IsLetter(*next_token)) { ++next_token; //++nWordProcessedInBytes; }

if ((next_token+2) > (strSrc+nWordTotalInBytes)) {//移动位置超过了最后一个有效字符 break; }

strToken = strtok_s(next_token, strDelim, &next_token); if ((next_token+2) > (strSrc+nWordTotalInBytes) || (NULL == strToken)) {//移动位置超过了最后一个有效字符,或者位置 内容为 null

break; } } }

在设置过滤字符的时候注意下(这是我在实际中犯的错误),在过滤文本中的字符时最好加 上:'\r'(回车)! 分类: C/C++



相关文章:
使用strtok_s函数从一个字符串中分离出单词
使用strtok_s函数从一个字符串中分离出单词_幼儿读物_幼儿教育_教育专区。使用 strtok_s 函数从一个字符串中分离出单词 下面的代码从含有多个结束符的字符串中...
使用strtok_s函数从一个字符串中分离出单词
使用strtok_s函数从一个字符串中分离出单词_数学_高中教育_教育专区。下面的代码从含有多个结束符的字符串中分离出单词来,需要对 strtok_s 有清楚的认识。 这段...
在C逗号分离使用strtok:如何处理CSV文件
在C 逗号分离使用 strtok:如何处理 CSV 文件 一种常见的程序之间的数据共享格式是 CSV(否则为逗号分隔值)文件。这些可以很容 易地处理使用 string.h 中的 C 本...
strtok与strsep函数说明
使用 strtok 函数会破坏被分解字符串的完整, 调用前和调用后的 s 已经不一样了。 如果要保 持原字符串的完整,可以使用 strchr 和 sscanf 的组合等。 c 1 2...
各种C语言字符串操作,str...
()为变量分配内存,不需要使用返回的字符串时,需要用 free()释放相应的内存空间...例如:strtok("abc,def,ghi",","),最后可以分割成为 abc def ghi.尤其在点...
c语言字符串函数使用
; char *p; p=strtok(a,","); puts(p); p=strtok(NULL,","); puts(p); p=strtok(NULL,"."); puts(p); } 当第一个使用 strtok(a,”,”);...
C语言字符串操作函数
strtok()—字符串分割函数相关函数:index, memchr, rindex, strpbrk, strsep, ...附加说明:atol()与使用 strtol(nptr, (char**)NULL, 10); 结果相同. 范例...
使用popen函数和ps命令读取进程表
使用popen函数和ps命令读取进程表_计算机软件及应用_IT/计算机_专业资料。简要介绍...EXIT_SUCCESS */ #include <string.h> /* strtok, strcmp */ #include <sy...
C语言分割字符串函数
C 语言分割字符串函数 strtok 在编程过程中,有时需要对字符串进行分割.而有效使用这些字符串分隔函数将会给我们带 来很多的便利. 下面我将在 MSDN 中学到的 ...
字符串操作
char *strtok(char *str1, char *str2); 程序例: #i nclude <string.h>...使用一键分享,轻松赚取财富值, 了解详情 嵌入播放器: 普通尺寸(450*500pix) ...
更多相关标签: