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

从一个字符串中,如"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;
}