c++提取字符串中括号里面的内容
c++提取字符串中括号里边的内容
例如 abcd efg h(c13)
括号里内容不固定,字符或者数字,怎么全部提取出来呢?结果是c13
------解决方案--------------------
------解决方案--------------------
比较喜欢用C中的strchr 先找到( 的地址p1, 再用strchr 找到)的地址p2
strcpy(szDest, p1 + 1, p2-p1-1 ); 就可以得到括号内容szDest了
------解决方案--------------------
CString可以使用Mid成员函数,Mid的参数意思好像和这个substr差不多,看一下MSDN就明白的,很简单
例如 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了
------解决方案--------------------
CString可以使用Mid成员函数,Mid的参数意思好像和这个substr差不多,看一下MSDN就明白的,很简单