首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

从一个字符串中,如"2006sdadadasd10ce20"使2006+10+20=2036,这个结果返回的函数?多谢各位

2012-03-18 
从一个字符串中,如2006sdadadasd10ce20使2006+10+202036,这个结果返回的函数????谢谢各位大虾从一个字

从一个字符串中,如"2006sdadadasd10ce20"使2006+10+20=2036,这个结果返回的函数????谢谢各位大虾
从一个字符串中,如"2006sdadadasd10ce20"使2006+10+20=2036,这个结果返回的函数????谢谢各位大虾
用指针怎么写???能给我个完整的函数吗?要是用sscanf()怎么写?谢谢各位大虾

[解决办法]
#include <iostream>
using namespace std;

//////////////////////////////////////////////////////////////////////////
// Global Var 
const char g_szText[] = "2006fdafdsa10fdafddd30";

//////////////////////////////////////////////////////////////////////////
// Forward Func Declaration 
bool IsNumber(const char c);
int AnalyseString(const char *szText);

int main(int args, char** argv)
{
cout << AnalyseString(g_szText);
return 0;
}


bool IsNumber(const char c)
{
return c >= '0' && c <= '9';
}


int AnalyseString(const char *szText)
{
int nResult = 0, nData = 0;
int nLen = strlen(szText);
const char *pIter = szText, *pEnd = szText + nLen;
nResult = 0;
while(pIter <= pEnd)
{
if(IsNumber(*pIter))
{
nData = nData * 10 + *pIter - '0';
}
else
{
nResult += nData;
nData = 0;
}
pIter++;
}

return nResult;
}

热点排行