C++ 求助,希望制作一个string转int的函数,遇到算法问题!!SOS~~!!!

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:39:37
int string_to_int(string word)
{
int number=0;
int word_size=word.size();
int word_size_to=word_size;
for(int j=0;j!=word_size;++j)
{
if(word[j]=='1')
{
number=number+1*10*word_size_to;
}
if(word[j]=='2')
{
number=number+2*10*word_size_to;
}
if(word[j]=='3')
{
number=number+3*10*word_size_to;
}
if(word[j]=='4')
{
number=number+4*10*word_size_to;
}
if(word[j]=='5')
{
number=number+5*10*word_size_to;
}
if(word[j]=='6')
{
number=number+6*10*word_size_to;
}
if(word[j]=='7')
{
number=number+7*10*word_size_to;
}
if(word[j]=='8')
{
number=number+8*10*word_size_to;
}
if(word[j]=='9')
{
number=number+9*10*word_size_to;
}
if(wo

太复杂了...

用这个吧

int string_to_int(const string& word)
{
int Sum = 0;
string temp = word;
while(temp!="")
{
Sum*=10;
Sum+=temp[0]-'0';
temp=temp.substr(1);
}
return Sum;
}

其实你这里
number=number+1*10*word_size_to;
想表达的应该是
number=number+1*pow(10.0,word_size_to);
吧?

把number=number+1*10*word_size_to;
改成:
number=10*num+1
或者:
number=number+1*pow(10.0,word_size_to);

int string_to_int(string word)
{
int number=0;
int word_size=word.size();
int word_size_to=word_size;
for(int j=0;j!=word_size;++j)
{
if(word[j]=='1')
{
number=10*num+1;
}
if(word[j]=='2')
{
number=number*10+2;
}
if(word[j]=='3')
{
nu number=number*10+3; }
if(word[j]=='4')
{
number=number*10