c++提取字符串中括号里面的内容

c++提取字符串中括号里边的内容
例如 abcd efg h(c13)
括号里内容不固定,字符或者数字,怎么全部提取出来呢?结果是c13

------解决方案--------------------
#include <stdio.h>
#include <locale.h>
char s[]="abcd efg h(c13)";
char t[33];
wchar_t ws[]=L"abcd efg h(c13)";
wchar_t wt[33];
int main() {
    if (1==sscanf(s,"%*[^(](%32[^)]",t)) {
        printf("%s\n",t);
    } else {
        printf("Format error:%s\n",s);
    }

    setlocale(LC_ALL,"chs");
    if (1==swscanf(ws,L"%*[^(](%32[^)]",wt)) {
        wprintf(L"%s\n",wt);
    } else {
        wprintf(L"Format error:%s\n",ws);
    }

    return 0;
}
//c13
//c13
//

------解决方案--------------------
比较喜欢用C中的strchr 先找到( 的地址p1, 再用strchr 找到)的地址p2
strcpy(szDest, p1 + 1, p2-p1-1 ); 就可以得到括号内容szDest了
------解决方案--------------------
引用:
Quote: 引用:

用string的话就简单了.
	string str = "abcd efg h(c13)";
str = str.substr(str.find("(")+1 ,str.find(")")-str.find("(")-1);

是CString类型的,提示没有这个成员变量,需要转换为string类型再转换回来么?
CString可以使用Mid成员函数,Mid的参数意思好像和这个substr差不多,看一下MSDN就明白的,很简单