我需要从需要的格式中提取字符串中的数字,如:
所以上面的操作是:
我编写了一个在c ++中运行良好的代码:
int main(int argc,char* argv[])
{
string str1(argv[argc-1]);
reverse(str1.begin(),str1.end());
str1.erase(remove(str1.begin(),str1.end(),'f'),str1.end());
str1.erase(0,str1.find_first_not_of('0',0));
cout <<str1<<endl;
return 0;
}
有没有更好的方法做同样的事情?
答案 0 :(得分:1)
我猜,一个简单的功能如下所示
注意: - 这不是一个完整的程序。只是一个流程......它会将字符串解析一次,而不是像你的情况那样解析3次。我绝对希望有更好的C ++风格方法,并期待相同。
foo(char * str){
int state = 0;
int len = strlen(str);
for(i = len-1; i&gt; = 0; i ++){
if(state==0 && str[i]!='0') { //Ignore trailing zeros
state=1;
}
else if(stare==1) {
if(str[i]=='f')
break;
//Reverse logic here, just store the char in a heap as it comes which will be returned after the for finishes
}
}
}