怎么提取内存中的数字

如何提取内存中的数字?
int   a1,a2,a3,a4;

char   buff[4];   //buff里面有4个数字字符,怎么把这4个字符放到   a1~a4   里?谢谢~



------解决方案--------------------
sscanf/istringstream
------解决方案--------------------
buff[4] 里面是一个ip信息,比如ip=222.70.57.228 的话,buff 里面就是 DE 46 39 E4
我想把他提取出来放到 a1~a4里, a1=222, a2=70, a3=57, a4=228 这样
==================
char buff[4]: buff[0]=222, 已经超过char的表示范围了.
用unsigned char buff[4]:

unsigned char buff[]={222,70,57,228};
int a1 = buff[0];
int a2 = buff[1];
int a3 = buff[2];
int a4 = buff[3];

即可.

------解决方案--------------------
#include <iostream>
using namespace std;

void main()
{
int a[4];
char buff[4]={ '1 ', '2 ', '3 ', '4 '};
for(int i=0;i <4;++i)
{
a[i]=(int )(buff[i]- '0 ');
cout < <a[i] < <endl;
}
}
没问题目啊!