先来说下需求:从一个长字符串中 ,分别取出各个短字符串(以逗号或空格[多个]区分)
如:char achStrTemp[100] = " hello , World, 1234dps , 100 ";
要分别取出 hello World 1234dps 100 且各个字符串不包含空格或逗号
C库函数: int sscanf(const char *str, const char *format, ...) 默认的截取规则是以空格为分割点 可允许使用正则规则
测试用例如下:
字符串
截取格式
输出格式,逗号为了显示字符串后的空格
运行结果
注释:%* 表示跳过 [ ] 内的非匹配项的值,即不取数值字母以外的值, ^ 表示匹配项,可多个数值。()内可填多个匹配项
遇到的问题来了,如果字符串的中间有空格且逗号前还有空格 如: Wor ld , 获取的就有问题了
但是这个是特例了,不在有法可循的字符串内,截取的字符串必须要有特定的规则可循,否则只能在截取后再进行处理
基础的先了解下什么是正则表达式....正则基础教程