字符串加减计算

来源:互联网 发布:为什么数据可以恢复 编辑:程序博客网 时间:2024/06/05 00:23

描述:
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
 
补充说明:
1. 操作数为正整数,不需要考虑计算结果溢出的情况。
2. 若输入算式格式错误,输出结果为“0”。




代码:

#include <iostream>#include<string.h>#include<stdlib.h>using namespace std;void stringArithmetic(const char *s1, long l, char *s2){int leftNum = 0,righNum = 0;int i = 0, j = 0;while (s1[i] >= '0'&&s1[i] <= '9'){leftNum = leftNum * 10 + (s1[i] - '0');i++;if (i > l){return ;}}if (s1[i] != ' ' || i >= l)return;elsei++;char op;if (s1[i] == '+' || s1[i] == '-'){op = s1[i];i++;}elsereturn;if (s1[i] != ' ' || i >= l)return;else{++i;}while (s1[i] >= '0'&&s1[i] <= '9'){righNum = righNum * 10 + (s1[i] - '0');++i;if (i >= l)return;}int result = 0;if (op == '+')result = leftNum + righNum;if (op == '-')result = leftNum - righNum;if (result < 0){result = -result;s2[j++] = '-';}_itoa(result, s2 + j, 10);}void print(char *c){char * p = c;while (p && *p != 0){cout << *p;p++;}}int main(){char *s1 = "1 + 1", s2[30] = { 0 };//cin >> s1;stringArithmetic(s1, strlen(s1)+1, s2);cout << s1 << " = " << s2 << endl;//print(s2); }


原创粉丝点击