C语言处理字符串的首选方法:无敌正则。哇哈哈
给大家介绍一个万能无敌正则,其实正则匹配相当复杂,而且功能强大,但是太难记了。所以我的原则是只记下几个最常用的,然后用熟了,于是万能无敌正则诞生了。
1.这个正则的方法是使用函数sscanf。
这个函数有点类似sprintf的反函数:sscanf(u8 *str,'%[^+]+%s', u8
*str_1, u8
*str_2);即将str通过中间的规则划分给str_1和str_2。例如规则%s,不用说了,字符串直接复制过去。
2.在sscanf函数的规则参数中使用了一个特殊的:%[^+] 这个东西就是正则。
他的意思是以字符串中的“+”为分隔符,(这个功能完全类似strtok函数),然后在匹配规则中写了一个“+”的符号,意思是这个加号是规则而不把他赋值给后面的字符串。举一个简单的例子,例如str为“goodboy+goodgirl”那么经过上面的sscanf函数后str_1变为goodboy,而str_2变为goodgirl。而加号本身没有被复制。
3.其实如果用过strtok的肯定首选strtok了,因为函数很稳定。
使用正则一定注意异常处理,一不留意就会搞出SEGMENT
FAULT了。但是首选这个正则的关键在于它