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 <stdio.h>
#include <string.h>
int a=123;
char cs[]="";
sprintf(cs,"%d",a);//VS2013会提示使用sprintf_s
>>cs="123"
4.#include <string>
#include <sstream>
stringstream ss;
string s;
int a=123;
ss<<a;
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 <stdio.h>
#include <string.h>
char cs[]="123";
int a;
sscanf(cs,"%d",&a);//VS2013会提示使用sscanf_s
>>a=123
3.#include <string>
#include <sstream>
stringstream ss;
string s="123";
int a;
ss<<s;
ss>>a;
>>a=123
还有stol方法以及boost库中的lexical_cast方法,可以查看这里。