C++字符串四则运算实例讲解

C++字符串四则运算实例讲解,第1张

概述本文章向大家介绍C++字符串四则运算实例讲解,需要的朋友可以参考一下

题目:字符串四则运算的实现

有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值。四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9),运算不用括号。另若有不能整除的情况,按向下取整处理,eg: 8/3得出值为2。

举例:字符串"8+7*2-9/3",计算出其值为19。

考点:数字的字符形式变换为数字形式的方法。

分析:输入的值是字符形式的,输出的值是整型的,解决这个问题的关键就是将数字和运算符号的字符型转化成整型运算。在网上的大多解决方式都用到了栈且代码量较长,本次采用的方法思路比较直接,代码量也相对减少了很多。

1 #include

2 #include

3 using namespace std;

4 int main()

5 {

6 int i = 0;

7 string str;

8 cin >> str;

9 int n = str.length();

10 char *num = new char[n];

11 strcpy(num,str.c_str());

12 //char num[10] = "8+7*2-9/3";

13 int num2[15] = {0};

14 for (i=0;i

15 {

16 if (num[i] >= '0'&&num[i] <= '9')

17 {

18 num2[i] = num[i]-48;//char转换成int

19 }

20 }

21 for (i = 0; i < n; i++)

22 {

23 if (num[i] == '*')

24 {

25 num2[i - 1] = num2[i - 1] *num2[i + 1];

26 for (int j = i; j <(n-2); j++)

27 {

28 num[j] = num[j + 2];//长度-2

29 num2[j] = num2[j + 2];

30 }

31 }

32 if (num[i] == '/')

33 {

34 num2[i - 1] = num2[i - 1] /num2[i + 1];

35 for (int j = i; j <(n-2); j++)

36 {

37 num[j] = num[j + 2];//长度-2

38 num2[j] = num2[j + 2];

39 }

40 }

41 }

42 for (i = 0; i < n; i++)

43 {

44 if (num[i] == '+')

45 {

46 num2[i - 1] = num2[i - 1]+num2[i + 1];

47 for (int j = i; j <(n-2); j++)

48 {

49 num[j] = num[j + 2];//长度-2

50 num2[j] = num2[j + 2];

51 }

52 }

53 if (num[i] == '-')

54 {

55 num2[i - 1] = num2[i - 1] -num2[i + 1];

56 for (int j = i; j <(n-2); j++)

57 {

58 num[j] = num[j + 2];//长度-2

59 num2[j] = num2[j + 2];

60 }

61 }

62 }

63 cout << num2[0] << endl;

64 return 0;

65 }

输入“8+7*2-9/3”,num 和 num2 变量如图所示:

变量名| i

1

2

3

4

5

6

7

8

num

8

+

7

*

2

-

9

/

3

num2

8

7

2

9

3

先算乘除,后算加减,计算“ * ”运算后变量变成:

变量名| i

1

2

3

4

5

6

7

8

num

8

+

7

-

9

/

3

/

3

num2

8

14

9

3

3

计算“ / ”后:

变量名| i

1

2

3

4

5

6

7

8

num

8

+

7

-

9

/

3

/

3

num2

8

14

3

3

3

最后计算加减“ + - ”,num2[0] 就成了8+14-3=19.

运行如图所示:

总结

以上是内存溢出为你收集整理的C++字符串四则运算实例讲解全部内容,希望文章能够帮你解决C++字符串四则运算实例讲解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存