sscanf 分割长字符串为多个子字符串&正则表达式

先来说下需求:从一个长字符串中 ,分别取出各个短字符串(以逗号或空格[多个]区分)

如:char achStrTemp[100] = " hello , World,  1234dps   , 100   ";

要分别取出  hello   World   1234dps   100   且各个字符串不包含空格或逗号


C库函数: int sscanf(const char *str, const char *format, ...)    默认的截取规则是以空格为分割点     可允许使用正则规则

测试用例如下:


字符串
截取格式
输出格式,逗号为了显示字符串后的空格
运行结果

注释:%*  表示跳过 [ ] 内的非匹配项的值,即不取数值字母以外的值, ^ 表示匹配项,可多个数值。()内可填多个匹配项



遇到的问题来了,如果字符串的中间有空格且逗号前还有空格  如: Wor  ld   ,  获取的就有问题了

但是这个是特例了,不在有法可循的字符串内,截取的字符串必须要有特定的规则可循,否则只能在截取后再进行处理


基础的先了解下什么是正则表达式....正则基础教程

你可能感兴趣的:(sscanf 分割长字符串为多个子字符串&正则表达式)