【问题标题】:C++ combine 3 integers [closed]C ++结合3个整数[关闭]
【发布时间】:2014-08-10 12:01:57
【问题描述】:

我需要加入来自某个区域的 3 个整数 q

int sens1[]= {11,22,13,66,2};

int x= ?? // and here i need to join sens1[0], sens1[1] and sens1[2] 
          // so the X to be=112213 not like char, like integer value

【问题讨论】:

  • 所以你需要做...数学? x + y * 10 输入内容?
  • 不,它不是矩阵行列式
  • 你有什么尝试吗?
  • @Vakho 这个简单的 tadman 样本与矩阵行列式有什么关系?!?
  • 似乎有一个缺陷,即 OP 可以通过更改接受的答案再次获得 +2,一些 Mod 可以解释一下吗?

标签: c++ arrays join integer concatenation


【解决方案1】:

我认为您可以为此使用stringstreams:

int result;
stringstream ss;
ss << sense1[0] << sense1[1] << sense1[2]; //assumes sense1[0,1,2] are all integers
ss >> result; //might need to be careful of integer overflow if it is too long

基本上将它们连接成一个字符串并将其读回一个整数。

【讨论】:

  • 别忘了把它转回整数然后...
  • @πάνταῥεῖ 结果变量是做什么的,不是吗?
  • 啊!抱歉没有先发现...
  • 有人应该站出来写intstream,它使用纯整数数学进行连接。
【解决方案2】:
std::string s = "";
for(int i=0; i<3; ++i)
    s += std::to_string(sens1[i]);
int n = strtol (s.c_str(), NULL, 10);

【讨论】:

    【解决方案3】:

    你可以使用 sprintf() 和 atol():

    char str[255];
    long result;
    sprintf(str, "%i%i%i", sense1[1], sense1[2], sense1[3]);
    result=atol(str);
    

    【讨论】:

    • $str 将包含由连接在一起的 3 个整数组成的字符串。
    • 对不起,应该是 str,而不是 $str。我编辑了我的答案。然后,在那之后,使用 i=atoi(str);或 i=atol(str);将其恢复为整数。
    • 这不是一个有效的 c++ 符号!
    • @πάνταῥεῖ $foo 几十年来一直是描述变量值的标准方式......无论如何都是伪代码
    • @mti2935 如果您定义 str 可能会有所帮助。您的意思可能是sprintf()。从未听说过sprint()。 (请更改您的答案,而不是 cmets)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2016-04-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多