怎样用sscanf取数据???

sscanf(str,"(%f)%c(%f)",&data1,&f,&data2);这样只能取出括号里的数,如(-5)+(-6)能把-5,-6和+号取出来,但是当str=“5+6”时就取不出来了,怎样改才能在有括号和没有括号的情况下都能取数。
大神们,指点一下吧,,非常感谢!!!有知道的吗?请赐教,,急等!!

有括号部分可以对应写一个提取函数,最后都用不加括号的sscanf读取

LZ干脆还是先遍历一下那个str,把左,右括号都丢掉,然后再用sscanf读吧
我试了下%*过滤不好用,sscanf(str,"%*[(]?%f%c(%f)",&data1,&f,&data2);一旦没有碰到(就会读到最后),用上?匹配0到1次也不好用啊。。。