在字符串中添加数学符号

时间:2012-09-26 14:06:10

标签: objective-c add symbols

如何在不使用a符号的情况下添加b+,因为我在+变量中分配了c符号?

我知道如何使用如下代码中所示的上述数据形成表达式,但我不知道如何使用NSExpression获取该表达式的输出。

这是我的代码:

int a=10;
int b=20;
NSString *c=@"+";

NSString *d=[NSString stringWithFormat:@"%d%@%d",a,c,b];

nslog(@"d=%@",d);//d=10+20

在此之后,我如何得到答案30?

5 个答案:

答案 0 :(得分:4)

如果你想找到a和b的总和,你可以:

-(-a-b)

答案 1 :(得分:4)

使用数学,您可以添加两个数字,而无需像这样添加

b*=-1
int result = a-b;

答案 2 :(得分:3)

使用以下代码添加两个不带“+”符号的数字。

int add(int x, int y) {
    int carry = 0;
    int result = 0;
    int i;

    for(i = 0; i < 32; ++i) {
        int a = (x >> i) & 1;
        int b = (y >> i) & 1;
        result |= ((a ^ b) ^ carry) << i;
        carry = (a & b) | (b & carry) | (carry & a);
    }

    return result;
}

答案 3 :(得分:1)

您可以编写一个从字符串中提取运算符(在本例中为+)的函数,并根据该函数进行计算。我恳请你至少查看斯坦福大学programming course by Paul Hegarty的前几集。你将构建一个计算器来完成你想要解决问题的东西。

答案 4 :(得分:1)

int a = 10;
int b = 20;
NSString *c = @"+";

NSString *s = [NSString stringWithFormat:@"%d %@ %d", a, c, b];
NSExpression *e = [NSExpression expressionWithFormat:s];
int result = [[e expressionValueWithObject:nil context:nil] intValue];

NSLog(@"%d", result);