在stl中添加两个字符串

时间:2014-05-07 09:46:38

标签: c++ string

如果有任何内置函数,有没有办法在不使用任何循环的情况下添加两个字符串?

即如果第一个字符串可以说," 1234"第二个是" 0010" (两者总是长度相同),我可以将它们添加到" 1244"不使用循环?

问题中的问题:如果长度不相同怎么办?

PS:长度不一样我的意思是: 即如果是字符串A;其中A的长度为4,值为:' 1',' 12',' 12',' 10' ans string b;其中b是" 1234",然后通过添加我想要' 2',' 14',' 15',' 14&# 39 ;.结果的长度也是4,但注意加法,按索引计算。

4 个答案:

答案 0 :(得分:1)

是的,请看下面的代码:

std::string A("123"), B("321");
int res = std::stoi(A) + std::stoi(B);

答案 1 :(得分:1)

在C ++ 11或更高版本中:

std::string result = std::to_string(std::stoi(s1) + std::stoi(s2));

从历史上看,你必须使用像strtol这样狡猾的C库函数或字符串流来处理,如果字符串可能不包含数字,请记住检查结果。

答案 2 :(得分:0)

试试这个:

 std::string s1 = "1234";
 std::string s2 = "0010";
 int s = atoi(s1.c_str()) + atoi(s2.c_str());
 std::stringstream ss;
 ss << s;
 cout << ss.str() << endl;

答案 3 :(得分:0)

  1. 转换为两个int - &gt; atoi
  2. 加上他们
  3. 将结果转换为string - &gt; itoa
  4. 浮动,加倍。