537. Complex Number Multiplication的C++解法(string和int互转)

 class Solution {
 public:
	 string complexNumberMultiply(string a, string b) {
		 int pa = a.find('+');
		 int pb = b.find('+');
		 int x1 = atoi((a.substr(0, pa)).c_str());
		 int x2 = atoi((b.substr(0, pb)).c_str());
		 int y1 = atoi(a.substr(pa + 1, a.length()).c_str());
		 int y2 = atoi(b.substr(pb + 1, b.length()).c_str());
		 string res = to_string(x1*x2 - y1*y2) + "+"+to_string(x1*y2 + x2*y1) + "i";
		 return res;
	 }
 };

int转string:

1.int a=123;
  string s=to_string(a);

>>s="123"

2.int a=123;
   char cs[]="";
   itoa(a,cs,10)//最后一个参数代表进制数

>>cs="123" //注意这里只能把数字转换成const char而不是string

3.#include 
   #include 
   int a=123;
   char cs[]="";
   sprintf(cs,"%d",a);//VS2013会提示使用sprintf_s

>>cs="123"

4.#include 
   #include 
   stringstream ss;
   string s;
   int a=123;
   ss<    ss>>s;

>>s="123"

string转int:

1.string s="123"
  int a=atoi(s.c_str());//atoi只能把const char转为int,所以需要先用c_str()方法把string类型改为char类型

2.#include 
   #include 
   char cs[]="123";
   int a;
   sscanf(cs,"%d",&a);//VS2013会提示使用sscanf_s

>>a=123

3.#include 
   #include 
   stringstream ss;
   string s="123";
   int a;
   ss<    ss>>a;

>>a=123

还有stol方法以及boost库中的lexical_cast方法,可以查看这里。

你可能感兴趣的:(LeetCode)