如何从字符串中提取数字啊

sz0802 2008-11-25 11:27:01
我想从COM1,COM2,COM3等等字符串中提取1.2.3等等数字,请问用VC有什么比较快点的方法吗?
...全文
172 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellward 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lfchen 的回复:]
C/C++ code//那就别用正则表达式了,麻烦CString str="COM1";
str.Replace("COM","");inti=atoi(str.GetBuffer(0));
str.ReleaseBuffer();
[/Quote]嗯
starytx 2008-11-25
  • 打赏
  • 举报
回复
CString str="COM1";
str=str.Right(str.GetLength()-3);
int i=atoi(str);
babycathq2000 2008-11-25
  • 打赏
  • 举报
回复
当然,你的字符串要是都是COM1,COM2,COM3....这样的,最好直接查找。若是还有不规律的情况,最好考虑正则。
babycathq2000 2008-11-25
  • 打赏
  • 举报
回复
实际上就是按照既定的格式寻找需要的内容,给你个入门教程。
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
找一个boost库,然后按照你的需求编写正则表达式,然后调用boost接口实现功能即可。
一条晚起的虫 2008-11-25
  • 打赏
  • 举报
回复
//那就别用正则表达式了,麻烦
CString str = "COM1";
str.Replace("COM", "");
int i = atoi(str.GetBuffer(0));
str.ReleaseBuffer();
yayafu 2008-11-25
  • 打赏
  • 举报
回复
一个一个的找
sz0802 2008-11-25
  • 打赏
  • 举报
回复
对呢
一条晚起的虫 2008-11-25
  • 打赏
  • 举报
回复
COM1,COM2,COM3....都是这样的?
sz0802 2008-11-25
  • 打赏
  • 举报
回复
楼上可不可以说得详细一点啊,最好能给个代码段让我看看啊,真是万分感谢啊
babycathq2000 2008-11-25
  • 打赏
  • 举报
回复
可以考虑正则表达式
chehw 2008-11-25
  • 打赏
  • 举报
回复
BOOL ExtractInteger(LPCTSTR lpszText, LONG *pnValue)
{
LONG nValue=0;
LPSTR pCursor=(LPCTSTR)lpszText);
TCHAR ch;
while(ch=*pCursor)
{
if(ch>=TEXT('0') && ch<=TEXT('9'))
{
nValue=atol(pCursor);
if(NULL!=pnValue) *pnValue=nValue;
return TRUE;
}
if(ch&0x80) pCursor++;
pCursor++;
}
return FALSE;
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧