取字符串长 合理申请空间
int len=strlen(str);
n=(n<len)?n:len;
char * p=new char[n+1];
////////////////////////////////////////
int m=0;
while(m<n&&str[m]!='\0')
m++;
char * p=new char[m+1];
//////////////////////////////////////////
int digitd=1;
while(n/=10)
digitd++;
//计算总位数(取某串数字的前N位数字)
…
ct=digitd-ct;
while(ct--)
n/=10;
return n;
///////////////////////////总位数减去需要得到位数,求得需要位数数的值