【问题标题】:C Concatenate Operator vs + OperatorC 连接运算符与 + 运算符
【发布时间】:2017-03-29 23:31:03
【问题描述】:

我想像这样使用连接作为数学运算符关键字

 #include <stdio.h>

 void main() {
     int a = 15;
     int b = 15;
     char var = '+';

     printf("result: %d", (a, var, b));

     return 0;
 }

【问题讨论】:

  • 我想要一千万美元。或者二十……
  • C 不是这样工作的。包含运算符的字符串不像运算符。

标签: c algorithm operators concatenation


【解决方案1】:

如何从 shell 获得一些帮助:

#include <stdio.h>
#include <stdlib.h>

 int main(void) {
     char buf[80];
     int a = 15;
     int b = 15;
     char var = '+';

     snprintf(buf, sizeof buf, "echo $[%d%c%d]", a, var, b); 
     return system(buf);
 }

它适用于 unix 和 OS/X。我不了解 Windows,但我听说他们现在发布了 bash。支持许多运算符:+-*/%^|&amp; 以及 ,&gt; 和@9332@。 /p>

【讨论】:

    【解决方案2】:

    你可以的

    #include <stdio.h>
    void main(char **argv, int argc) {
       int a = 15;
       int b = 15;
       char var = '+';
       if (var == '+') { // Check to see if it is a '+' and then add if so
          printf("result: %d\n", a + b); // the \n prints a newline
       }
       return 0;
    }
    

    对于每个运算符。您可以考虑使用 flex 之类的东西来解析令牌。

    【讨论】:

    • 为什么对这个答案投反对票?为什么在这个问题上?我们不是都来过一次吗?
    • Milliennium Bug 看,问题是我想得到两个数字和想要的操作(作为字符'+'或'-'..等)然后我需要在不使用条件的情况下进行计算在操作中
    • 就像这样:#include void main(char **argv, int argc) { int a = 15;诠释 b = 5;字符变量 = '+'; //这是作为字符的操作 printf("result: %d\n", ??); } 返回 0; }
    • 不能用标准库在C语言中完成;这就是它在标准库中的实现方式(除了 100 行以上)。
    • 算法呢?你能提供谁能做到这一点的算法吗?提前致谢
    猜你喜欢
    • 2014-10-12
    • 2014-02-27
    • 1970-01-01
    • 2010-09-08
    • 2011-06-20
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多