写一个函数把含有加减运算的字符串计算出结果,返回整数。使用C语言
时间: 2023-12-06 12:45:22 浏览: 292
C语言编写的加减乘除运算
以下是一个简单的实现,可以处理加减运算,不支持括号和乘除运算:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int calculate(char* s) {
int len = strlen(s);
int i = 0, res = 0, sign = 1, num = 0;
while (i < len) {
if (s[i] >= '0' && s[i] <= '9') {
num = num * 10 + s[i] - '0';
} else if (s[i] == '+' || s[i] == '-') {
res += sign * num;
sign = (s[i] == '+') ? 1 : -1;
num = 0;
}
i++;
}
res += sign * num;
return res;
}
int main() {
char s[] = "1+2-3+4";
printf("%d\n", calculate(s));
return 0;
}
```
该函数使用了一个变量 `res` 来保存当前计算结果,使用一个变量 `sign` 来保存当前数字的符号,使用一个变量 `num` 来保存当前数字的值。在遇到加号或减号时,将当前数字与符号添加到结果中,然后将符号更新为新的符号,将数字清零。最后将最后一个数字加入结果中并返回。
阅读全文