菜鸟求救!!CString b="j-5-45";如何取出其中的数字 并转化参加计算!!
我有一个
CString b= "j-5-45 ";
问题
1.我想要取出第二个 '- '后面的45
然后转化为 int类型,参加计算;
计算的int 型结果再转化为 长度为 3 的字符串不足前面补零;
2.取第一个 '- '与第二个 '- '之间的数字5
将其转化为长度为2的字符串 不足的前面 补零;
小弟学测绘的 刚开始学VC做毕业设计 急!!希望大虾们帮帮忙 给点代码!!
[解决办法]
int x;int y;
sscanf(b, "j-%d-%d ",&x,&y);
CString c;
c.Format( "j-%02d-%03d ",x,y);
[解决办法]
CString b= "j-5-45 ";
int aa[4];
int i2=0, i;
BOOL m_temp = TRUE;
CString str1;
/*问题2*/
for(i=2;i <b.GetLength();i++){
if(b[i] != '- '){
str1.Format( "%c ", b[i]);
aa[i2] = atoi(str1);
i2++;
}
else if(b[i] == '- ')
break;
}
int x2;
CString str_2;
if(i2==1){
x2=aa[0];
str_2.Format( "0%d ", x2);
}
if(i2==2){
x2=aa[0]*10+aa[1];
str_2.Format( "%d ", x2);
}
x2:要取的整数;str_2:要得到的字符串
//////////////////////////////////////////////////////////////////////////
/*问题1*/
i2=0;
for(i=3;i <b.GetLength();i++){
if(b[i] == '- ' && m_temp){
m_temp=FALSE;continue;
}
if( !m_temp){
str1.Format( "%c ", b[i]);
aa[i2] = atoi(str1);
i2++;
}
}
int x1;
CString str_1;
if(i2==1){
x1=aa[0];
str_2.Format( "00%d ", x1);
}
if(i2==2){
x1=aa[0]*10+aa[1];
str_1.Format( "0%d ", x1);
}
if(i2==3){
x1=aa[0]*100+aa[1]*10+aa[2];
str_1.Format( "%d ", x1);
}
x1:要取的整数;str_1:要得到的字符串
====================================================