您的位置:首页 > 编程语言 > C语言/C++

将字符串数字转换为整数变量int的两种方法

2013-04-14 16:46 441 查看
/**************************************************************/

// 输入“-123” 输出 -123 正数没有符号,负数有符号,假设所有字符串的值没有超过int的表示范围

/*********************************************************************/

#include<iostream>

#include<string>

#include<cstring>

#include<stdexcept>

#include<sstream>

using namespace std;

//   方法1

int f(const char*p)

{int flag=0,//标示正负数

      v=0,

     len=0,//不包括负号

     sum=0;

 if(p!=NULL)

   {  if(*p=='-')

        {flag=1;

         ++p;

        }

      len=strlen(p);

      for(int i=0;i<len;++i)//遍历字符串

         { if(*(p+i)==48)

             continue;

             else

             { v=*(p+i)-48;

               for(int j=len-i;j>1;--j)

                   v=v*10;

               sum+=v;

             }

             

             

         }

      

     return flag? -1*sum:sum;    

   }

   else

   

   throw runtime_error("输入非法无法转换");

}

//方法2

int f_(const char*p)//没有进行p的安全检测

{ int v=0;

  string s=p;

  istringstream in(s);

  in>>v;

  return v;

}

int main(void)

{ const char*a="2442";

  cout<<f(a)<<endl;

  cout<<f_(a)<<endl;

  return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ String
相关文章推荐