int Split_dzs_int(const char *sCr,int ag,int n,int ni) //本函将*sCr字符串按分隔符转成数字存放在aF[]内,将每个aF[]转换前的字符串按原样转为数字存放在dzs[][]内*/
{
//const char *sCr="123 002 107 06 05 04";
char* buf = new char[strlen(sCr) + 1];
strcpy(buf, sCr);
char tmp[99];
int i, k, js=0, aF[99], agl, dzs[99][99], Counal[99];
char * p= strtok(buf," ");
while (p)
{
strcpy(tmp, p);
i = atoi(tmp);
Counal[js]=Mid_Int(tmp, 1, js);
for(k=0; k<Counal[js]; k++)
{
dzs[js][k]=Mid_Int(tmp, 0, k);
}
aF[js] = i;
js++;
p=strtok(NULL, " ");
}
agl=js;
int dm;
switch(ag)
{
case 0 : dm=dzs[n][ni]; break;
case 1 : dm=aF[n]; break;
case 2 : dm=agl; break;
case 3 : dm=Counal[n]; break;
}
return dm;
}
char *Mid(char a[],int i,int j)
{
int m,t=0;
static char b[99];
for(m=i-1;m<i+j-1;m++)
{
b[t++]=a[m];
}
b[t]=0;
return b;
}
int Mid_Int(char a[],int g,int n)
{
int i,j=1,Num[999];
for( i = 0;i < strlen(a); i ++)
{
Num[i] = atoi(Mid(a,i+1,j));
}
int dm;
switch(g)
{
case 0 : dm=Num[n]; break;
case 1 : dm=strlen(a); break;
}
return dm;
}
字符串转数值函数 Split,测试很顺利,但应用到利鹰插件内碰到转换数据多的就容易死机 2021-11-10
最新推荐文章于 2024-09-04 05:43:08 发布