【C++】P1957 口算练习题

embedded/2025/2/5 6:36:19/
class="tags" href="/C.html" title=c>cle class="tags" href="/C.html" title=c>class="baidu_pl">
class="tags" href="/C.html" title=c>cle_class="tags" href="/C.html" title=c>content" class="tags" href="/C.html" title=c>class="articlass="tags" href="/C.html" title=c>cle_class="tags" href="/C.html" title=c>content class="tags" href="/C.html" title=c>clearfix">
class="tags" href="/C.html" title=c>content_views" class="tags" href="/C.html" title=c>class="markdown_views prism-tomorrow-night">class="tags" href="/C.html" title=c>cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-bloclass="tags" href="/C.html" title=c>ck" style="-webkit-tap-highlight-class="tags" href="/C.html" title=c>color: rgba(0, 0, 0, 0);">

class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/class="tags" href="/C.html" title=c>cb7f73class="tags" href="/C.html" title=c>cda1a14130840e356class="tags" href="/C.html" title=c>cb0b6f9e4.png#piclass="tags" href="/C.html" title=c>c_class="tags" href="/C.html" title=c>center" alt="在这里插入图片描述" width="100" />

<class="tags" href="/C.html" title=c>center> 博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] class="tags" href="/C.html" title=c>center> <class="tags" href="/C.html" title=c>center> 本文专栏: C++ class="tags" href="/C.html" title=c>center>

class="tags" href="/C.html" title=c>class="toclass="tags" href="/C.html" title=c>c">

文章目录

  • 💯前言
  • 💯题目描述
    • 输入格式:
    • 输出格式:
  • 💯我的做法
    • 代码实现:
  • 💯老师的做法
    • 代码实现:
  • 💯对比分析
  • 💯拓展与优化
  • 💯总结
    • 一开始的错误做法


class="tags" href="/C.html" title=c>c="https://img-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/00d4fdeb7b0d4dbb99e88f325ef249d8.gif#piclass="tags" href="/C.html" title=c>c_class="tags" href="/C.html" title=c>center" alt="在这里插入图片描述" width="1000" height="100" />


💯前言

  • 在编程学习过程中࿰class="tags" href="/C.html" title=c>c;C++ 语言为我们提供了强大的控制能力和灵活的操作方式。在本次学习中࿰class="tags" href="/C.html" title=c>c;我们面对的是一个简单的算术口算题目的处理任务。任务要求通过程序自动处理多个口算算式࿰class="tags" href="/C.html" title=c>c;输出完整的算式、其计算结果࿰class="tags" href="/C.html" title=c>c;并计算算式的总长度。这个问题看似简单࿰class="tags" href="/C.html" title=c>c;但可以通过多种方式解决࿰class="tags" href="/C.html" title=c>c;过程中涉及到字符串拼接、运算符判断和数据存储等基础编程技术。
    在本次讨论中࿰class="tags" href="/C.html" title=c>c;我们将深入分析两种不同的解决方法:我提出的做法与老师的做法。我们将详细对比这两种方法的思路、代码实现࿰class="tags" href="/C.html" title=c>c;并进行优化和拓展࿰class="tags" href="/C.html" title=c>c;以便对 C++ 编程的理解更为深刻。
    C++ 参考手册
    class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/f0db7class="tags" href="/C.html" title=c>c348331440fa266b3class="tags" href="/C.html" title=c>c24f558694.png#piclass="tags" href="/C.html" title=c>c_class="tags" href="/C.html" title=c>center" alt="在这里插入图片描述" />

💯题目描述

P1957 口算练习题
class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/053b74199class="tags" href="/C.html" title=c>c3class="tags" href="/C.html" title=c>c447791f307f6835f8ba6.png" alt="在这里插入图片描述" />

题目要求我们处理一组口算题目࿰class="tags" href="/C.html" title=c>c;每道题目可能包括加法、减法或乘法操作。每道题的输入由两个或三个数据组成࿰class="tags" href="/C.html" title=c>c;若有三个数据࿰class="tags" href="/C.html" title=c>c;第一个表示运算符(<class="tags" href="/C.html" title=c>code>aclass="tags" href="/C.html" title=c>code> 表示加法࿰class="tags" href="/C.html" title=c>c;<class="tags" href="/C.html" title=c>code>bclass="tags" href="/C.html" title=c>code> 表示减法࿰class="tags" href="/C.html" title=c>c;<class="tags" href="/C.html" title=c>code>class="tags" href="/C.html" title=c>cclass="tags" href="/C.html" title=c>code> 表示乘法)࿰class="tags" href="/C.html" title=c>c;接下来的两个数据为参与运算的数值;若只有两个数据࿰class="tags" href="/C.html" title=c>c;则表示继承上一道题的运算符。

我们需要输出每道题的完整算式࿰class="tags" href="/C.html" title=c>c;并且输出算式的总长度。以下是题目的完整描述:

输入格式:

<class="tags" href="/C.html" title=c>code>4
a 64 46
275 125
class="tags" href="/C.html" title=c>c 11 99
b 46 64
class="tags" href="/C.html" title=c>code>

输出格式:

<class="tags" href="/C.html" title=c>code>64+46=110
9
275+125=400
11
11*99=1089
10
46-64=-18
9
class="tags" href="/C.html" title=c>code>

💯我的做法

我的实现方法着眼于输入的处理与字符串的拼接࿰class="tags" href="/C.html" title=c>c;基本流程如下:

  1. 输入读取:首先读取题目数量 <class="tags" href="/C.html" title=c>code>iclass="tags" href="/C.html" title=c>code>࿰class="tags" href="/C.html" title=c>c;然后循环处理每一道算式。每道算式可以是完整的带有运算符的输入࿰class="tags" href="/C.html" title=c>c;也可以是继承上题的运算符。
  2. 算式计算:对于每道算式࿰class="tags" href="/C.html" title=c>c;根据运算符 <class="tags" href="/C.html" title=c>code>aclass="tags" href="/C.html" title=c>code>, <class="tags" href="/C.html" title=c>code>bclass="tags" href="/C.html" title=c>code>, 或 <class="tags" href="/C.html" title=c>code>class="tags" href="/C.html" title=c>cclass="tags" href="/C.html" title=c>code> 来决定进行加法、减法或乘法操作。
  3. 字符串拼接:利用字符串的拼接(<class="tags" href="/C.html" title=c>code>+=class="tags" href="/C.html" title=c>code>)来构造完整的算式表达式࿰class="tags" href="/C.html" title=c>c;并计算结果。
  4. 输出:输出每道算式及其结果࿰class="tags" href="/C.html" title=c>c;最后输出算式的总长度。

代码实现:

<class="tags" href="/C.html" title=c>code class="tags" href="/C.html" title=c>class="prism language-class="tags" href="/C.html" title=c>cpp">class="tags" href="/C.html" title=c>class="token maclass="tags" href="/C.html" title=c>cro property">class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive-hash">#class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive keyword">inclass="tags" href="/C.html" title=c>clude class="tags" href="/C.html" title=c>class="token string"><iostream>
class="tags" href="/C.html" title=c>class="token maclass="tags" href="/C.html" title=c>cro property">class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive-hash">#class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive keyword">inclass="tags" href="/C.html" title=c>clude class="tags" href="/C.html" title=c>class="token string"><string>
class="tags" href="/C.html" title=c>class="token keyword">using class="tags" href="/C.html" title=c>class="token keyword">namespaclass="tags" href="/C.html" title=c>ce stdclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">mainclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>class="token keyword">int  iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string tempclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, ysfclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">whileclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(iclass="tags" href="/C.html" title=c>class="token operator">--class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{string sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> tempclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a" class="tags" href="/C.html" title=c>class="token operator">|| temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b" class="tags" href="/C.html" title=c>class="token operator">|| temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"class="tags" href="/C.html" title=c>c"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> a class="tags" href="/C.html" title=c>class="token operator">>> bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'+'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">+ bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'-'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">- bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(temp class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"class="tags" href="/C.html" title=c>c"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'*'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">* bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}ysf class="tags" href="/C.html" title=c>class="token operator">= tempclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{a class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(tempclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(ysf class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'+'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">+ bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(ysf class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'-'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">- bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(aclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'*'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'='class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;s class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">* bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< s class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">.class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">sizeclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">) class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">return class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}
class="tags" href="/C.html" title=c>code>

💯老师的做法

老师的做法与我的实现思路相似࿰class="tags" href="/C.html" title=c>c;但有一些不同之处。老师的代码在结构上稍显复杂࿰class="tags" href="/C.html" title=c>c;特别是在输入和字符串拼接部分的处理上࿰class="tags" href="/C.html" title=c>c;且做了更多的优化来处理继承运算符的情况。

代码实现:

<class="tags" href="/C.html" title=c>code class="tags" href="/C.html" title=c>class="prism language-class="tags" href="/C.html" title=c>cpp">class="tags" href="/C.html" title=c>class="token keyword">int class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">mainclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>class="token keyword">int n class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> nclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string opclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string num1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string num2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string lastclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int ret class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">while class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(nclass="tags" href="/C.html" title=c>class="token operator">--class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{string ansclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> opclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">if class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(op class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a" class="tags" href="/C.html" title=c>class="token operator">|| op class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b" class="tags" href="/C.html" title=c>class="token operator">|| op class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"class="tags" href="/C.html" title=c>c"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> num1 class="tags" href="/C.html" title=c>class="token operator">>> num2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int n1 class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(num1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int n2 class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(num2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= num1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">if class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(op class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">+ n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"+"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">if class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(op class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">- n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"-"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">* n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"*"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}last class="tags" href="/C.html" title=c>class="token operator">= opclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{num1 class="tags" href="/C.html" title=c>class="token operator">= opclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> num2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int n1 class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(num1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int n2 class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(num2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= num1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">if class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(last class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"a"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">+ n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"+"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">if class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(last class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token string">"b"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">- n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"-"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{ret class="tags" href="/C.html" title=c>class="token operator">= n1 class="tags" href="/C.html" title=c>class="token operator">* n2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token string">"*"class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}ans class="tags" href="/C.html" title=c>class="token operator">+= class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(num2 class="tags" href="/C.html" title=c>class="token operator">+ class="tags" href="/C.html" title=c>class="token string">"=" class="tags" href="/C.html" title=c>class="token operator">+ class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">to_stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(retclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< ans class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< ansclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">.class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">sizeclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">) class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">return class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}
class="tags" href="/C.html" title=c>code>

💯对比分析

  1. 结构差异

    • 我的做法中࿰class="tags" href="/C.html" title=c>c;我们根据输入的运算符判断是否更新运算符࿰class="tags" href="/C.html" title=c>c;并且用 <class="tags" href="/C.html" title=c>code>last_opclass="tags" href="/C.html" title=c>code> 来记住上一题的运算符࿰class="tags" href="/C.html" title=c>c;保证后续算式的正确计算。
    • 老师的做法稍微复杂一些࿰class="tags" href="/C.html" title=c>c;采用了更显式的变量存储(如 <class="tags" href="/C.html" title=c>code>lastclass="tags" href="/C.html" title=c>code> 变量)。另外࿰class="tags" href="/C.html" title=c>c;老师在每次处理完一个算式后࿰class="tags" href="/C.html" title=c>c;拼接完成的字符串才会输出。
  2. 字符串拼接

    • 我的做法通过直接将 <class="tags" href="/C.html" title=c>code>+class="tags" href="/C.html" title=c>code>、<class="tags" href="/C.html" title=c>code>-class="tags" href="/C.html" title=c>code>、<class="tags" href="/C.html" title=c>code>*class="tags" href="/C.html" title=c>code> 等运算符拼接进 <class="tags" href="/C.html" title=c>code>ansclass="tags" href="/C.html" title=c>code> 字符串。
    • 老师的做法在拼接过程中࿰class="tags" href="/C.html" title=c>c;将运算符的插入和结果的转换更加细化࿰class="tags" href="/C.html" title=c>c;也做了更精确的类型转换处理(使用 <class="tags" href="/C.html" title=c>code>stoiclass="tags" href="/C.html" title=c>code> 将字符串转换为整数)。
  3. 处理继承运算符

    • 我的做法是依赖 <class="tags" href="/C.html" title=c>code>last_opclass="tags" href="/C.html" title=c>code> 来判断是否使用上一题的运算符。
    • 老师的做法在这一点上比较细致࿰class="tags" href="/C.html" title=c>c;利用了 <class="tags" href="/C.html" title=c>code>lastclass="tags" href="/C.html" title=c>code> 变量来确保后续运算使用的是正确的运算符。

💯拓展与优化

  1. 代码优化

    • 对于运算符和结果拼接部分࿰class="tags" href="/C.html" title=c>c;使用了 <class="tags" href="/C.html" title=c>code>+=class="tags" href="/C.html" title=c>code> 拼接字符串࿰class="tags" href="/C.html" title=c>c;但如果问题较为复杂或涉及到更多操作࿰class="tags" href="/C.html" title=c>c;可能会导致拼接效率不高。可以考虑使用 <class="tags" href="/C.html" title=c>code>ostringstreamclass="tags" href="/C.html" title=c>code> 来拼接字符串࿰class="tags" href="/C.html" title=c>c;这样可以提高性能。
  2. 用户输入优化

    • 可以增加输入校验࿰class="tags" href="/C.html" title=c>c;避免用户输入错误的数据类型(如非数字输入等)。
  3. 更广泛的应用

    • 这类算术问题不仅限于加法、减法和乘法。如果要处理更多运算符(如除法、取余等)࿰class="tags" href="/C.html" title=c>c;可以通过扩展运算符判断来完成。
  4. 函数化

    • 该问题的不同部分(如运算符判断、算式拼接、输出结果等)可以通过函数化进行封装࿰class="tags" href="/C.html" title=c>c;提高代码的模块化和复用性。

💯总结

本次学习和讨论了如何用 C++ 语言处理简单的口算算式࿰class="tags" href="/C.html" title=c>c;通过两种不同的实现方法(我的做法与老师的做法)࿰class="tags" href="/C.html" title=c>c;我们掌握了如何判断运算符、处理继承运算符的情况࿰class="tags" href="/C.html" title=c>c;并输出结果与算式的总长度。通过对比分析࿰class="tags" href="/C.html" title=c>c;我们看到了两种做法的异同与各自的优缺点。

在优化方面࿰class="tags" href="/C.html" title=c>c;我们提出了改进的思路࿰class="tags" href="/C.html" title=c>c;如何提高代码性能、增强可扩展性࿰class="tags" href="/C.html" title=c>c;以及如何处理更多复杂的运算符类型。总体来说࿰class="tags" href="/C.html" title=c>c;这道题目的解决方案为我们提供了一个很好的编程练习机会࿰class="tags" href="/C.html" title=c>c;帮助我们更好地理解字符串操作、控制流程和输入输出的细节。

一开始的错误做法

<class="tags" href="/C.html" title=c>code class="tags" href="/C.html" title=c>class="prism language-class="tags" href="/C.html" title=c>cpp">class="tags" href="/C.html" title=c>class="token maclass="tags" href="/C.html" title=c>cro property">class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive-hash">#class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive keyword">inclass="tags" href="/C.html" title=c>clude class="tags" href="/C.html" title=c>class="token string"><iostream>
class="tags" href="/C.html" title=c>class="token maclass="tags" href="/C.html" title=c>cro property">class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive-hash">#class="tags" href="/C.html" title=c>class="token direclass="tags" href="/C.html" title=c>ctive keyword">inclass="tags" href="/C.html" title=c>clude class="tags" href="/C.html" title=c>class="token string"><string>
class="tags" href="/C.html" title=c>class="token keyword">using class="tags" href="/C.html" title=c>class="token keyword">namespaclass="tags" href="/C.html" title=c>ce stdclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">mainclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>class="token keyword">int i class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">int opera class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;string sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">whileclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(iclass="tags" href="/C.html" title=c>class="token operator">--class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>class="token keyword">int index class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, a class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, b class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">whileclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>cin class="tags" href="/C.html" title=c>class="token operator">>> sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{indexclass="tags" href="/C.html" title=c>class="token operator">++class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(index class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">{class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">] class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'a'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)opera class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">] class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'b'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)opera class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">] class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>char">'class="tags" href="/C.html" title=c>c'class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)opera class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token number">3class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">elsea class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">]class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;  class="tags" href="/C.html" title=c>class="token class="tags" href="/C.html" title=c>comment">// 将字符 s[i] 转换为字符串后再使用 stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(index class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">2 class="tags" href="/C.html" title=c>class="token operator">&& a class="tags" href="/C.html" title=c>class="token operator">!= class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)b class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">]class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(index class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">2 class="tags" href="/C.html" title=c>class="token operator">&& a class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)a class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">]class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(index class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">3class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)b class="tags" href="/C.html" title=c>class="token operator">= class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stoiclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token funclass="tags" href="/C.html" title=c>ction">stringclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">, sclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">[iclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">]class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">; class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(opera class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">1class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< a class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"+" class="tags" href="/C.html" title=c>class="token operator"><< b class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"=" class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">+ bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">) class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">else class="tags" href="/C.html" title=c>class="token keyword">ifclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(opera class="tags" href="/C.html" title=c>class="token operator">== class="tags" href="/C.html" title=c>class="token number">2class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">)class="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< a class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"-" class="tags" href="/C.html" title=c>class="token operator"><< b class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"=" class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">- bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">) class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token keyword">elseclass="tags" href="/C.html" title=c>cout class="tags" href="/C.html" title=c>class="token operator"><< a class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"*" class="tags" href="/C.html" title=c>class="token operator"><< b class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token string">"=" class="tags" href="/C.html" title=c>class="token operator"><< class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">(a class="tags" href="/C.html" title=c>class="token operator">* bclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">) class="tags" href="/C.html" title=c>class="token operator"><< endlclass="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}class="tags" href="/C.html" title=c>class="token keyword">return class="tags" href="/C.html" title=c>class="token number">0class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">;
class="tags" href="/C.html" title=c>class="token punclass="tags" href="/C.html" title=c>ctuation">}
class="tags" href="/C.html" title=c>code>

还有࿰class="tags" href="/C.html" title=c>c;要注意变量的作用域


class="tags" href="/C.html" title=c>c="https://img-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/00d4fdeb7b0d4dbb99e88f325ef249d8.gif#piclass="tags" href="/C.html" title=c>c_class="tags" href="/C.html" title=c>center" alt="在这里插入图片描述" width="1000" height="100" />


class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/C.html" title=c>c="https://i-blog.class="tags" href="/C.html" title=c>csdnimg.class="tags" href="/C.html" title=c>cn/direclass="tags" href="/C.html" title=c>ct/fclass="tags" href="/C.html" title=c>c6aclass="tags" href="/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />

学习C++的建议

C++ 是一门强大且广泛应用的编程语言࿰class="tags" href="/C.html" title=c>c;无论是系统开发、游戏开发还是高性能计算࿰class="tags" href="/C.html" title=c>c;它都有不可替代的地位。然而࿰class="tags" href="/C.html" title=c>c;学习C++的道路可能是陡峭的࿰class="tags" href="/C.html" title=c>c;为了帮助你更高效地掌握这门语言࿰class="tags" href="/C.html" title=c>c;我总结了一些学习建议和经验。


1. 理解C++的基础
学习重点:

  1. 掌握基本语法
    • 学会声明变量、条件语句、循环、函数等核心语法。
    • 掌握数组、指针、引用等基础知识。
  2. 熟悉标准输入输出
    • 掌握 <class="tags" href="/C.html" title=c>code>class="tags" href="/C.html" title=c>cinclass="tags" href="/C.html" title=c>code> 和 <class="tags" href="/C.html" title=c>code>class="tags" href="/C.html" title=c>coutclass="tags" href="/C.html" title=c>code> 的用法。
    • 理解格式化输出࿰class="tags" href="/C.html" title=c>c;例如 <class="tags" href="/C.html" title=c>code>std::setwclass="tags" href="/C.html" title=c>code> 和 <class="tags" href="/C.html" title=c>code>std::fixedclass="tags" href="/C.html" title=c>code>。
  3. 记住编译器的角色
    • 理解源代码如何通过编译器转换为可执行程序࿰class="tags" href="/C.html" title=c>c;选择一款好的IDE(如Visual Studio、Clion、VSCode)。
class="tags" href="/C.html" title=c>ckquote>

建议:用大量小程序练习这些基础语法࿰class="tags" href="/C.html" title=c>c;比如写一个计算器、模拟猜数字游戏等。

class="tags" href="/C.html" title=c>ckquote>

2. 深入学习C++的特性
学习重点:

  1. 面向对象编程(OOP)
    • 理解类和对象࿰class="tags" href="/C.html" title=c>c;熟悉如何定义类、成员变量和成员函数。
    • 掌握封装、继承、多态三大核心特性。
  2. 内存管理
    • 理解指针的用法࿰class="tags" href="/C.html" title=c>c;掌握动态内存分配(<class="tags" href="/C.html" title=c>code>newclass="tags" href="/C.html" title=c>code> 和 <class="tags" href="/C.html" title=c>code>deleteclass="tags" href="/C.html" title=c>code>)。
    • 学习如何避免内存泄漏࿰class="tags" href="/C.html" title=c>c;熟悉智能指针(如<class="tags" href="/C.html" title=c>code>std::unique_ptrclass="tags" href="/C.html" title=c>code> 和 <class="tags" href="/C.html" title=c>code>std::shared_ptrclass="tags" href="/C.html" title=c>code>)。
  3. 标准模板库(STL)
    • 熟悉常用的容器(如<class="tags" href="/C.html" title=c>code>veclass="tags" href="/C.html" title=c>ctorclass="tags" href="/C.html" title=c>code>、<class="tags" href="/C.html" title=c>code>mapclass="tags" href="/C.html" title=c>code>、<class="tags" href="/C.html" title=c>code>setclass="tags" href="/C.html" title=c>code>)和算法(如<class="tags" href="/C.html" title=c>code>sortclass="tags" href="/C.html" title=c>code>、<class="tags" href="/C.html" title=c>code>findclass="tags" href="/C.html" title=c>code>)。
    • 掌握迭代器的用法。
  4. 异常处理
    • 学习使用<class="tags" href="/C.html" title=c>code>try-class="tags" href="/C.html" title=c>catclass="tags" href="/C.html" title=c>chclass="tags" href="/C.html" title=c>code>块处理异常。
    • 理解异常的用途以及如何设计健壮的代码。
class="tags" href="/C.html" title=c>ckquote>

建议:尝试开发一个小型项目࿰class="tags" href="/C.html" title=c>c;比如一个学生管理系统࿰class="tags" href="/C.html" title=c>c;综合应用类、STL、指针和动态内存分配。

class="tags" href="/C.html" title=c>ckquote>

3. 掌握进阶内容
学习重点:

  1. 模板
    • 理解函数模板和类模板࿰class="tags" href="/C.html" title=c>c;掌握泛型编程思想。
    • 学习模板特化和模板元编程的基本概念。
  2. 多线程与并发
    • 学习 C++11 提供的多线程支持(如<class="tags" href="/C.html" title=c>code>std::threadclass="tags" href="/C.html" title=c>code>)。
    • 熟悉互斥锁(<class="tags" href="/C.html" title=c>code>std::mutexclass="tags" href="/C.html" title=c>code>)和条件变量(<class="tags" href="/C.html" title=c>code>std::class="tags" href="/C.html" title=c>condition_variableclass="tags" href="/C.html" title=c>code>)。
  3. C++与C的兼容性
    • 学习如何在C++中使用C语言代码࿰class="tags" href="/C.html" title=c>c;理解C和C++的区别。
    • 掌握C风格字符串(<class="tags" href="/C.html" title=c>code>class="tags" href="/C.html" title=c>char[]class="tags" href="/C.html" title=c>code>)和C++字符串(<class="tags" href="/C.html" title=c>code>std::stringclass="tags" href="/C.html" title=c>code>)的转换。
class="tags" href="/C.html" title=c>ckquote>

建议:在这一阶段࿰class="tags" href="/C.html" title=c>c;可以挑战更复杂的项目࿰class="tags" href="/C.html" title=c>c;比如开发一个小型的HTTP服务器࿰class="tags" href="/C.html" title=c>c;学习网络编程并结合多线程。

class="tags" href="/C.html" title=c>ckquote>

4. 学习资源与实践方法
学习资源:

  1. 书籍
    • 《C++ Primer》:非常适合初学者的经典书籍。
    • 《Effeclass="tags" href="/C.html" title=c>ctive C++》:进阶学习C++最佳实践的指南。
    • 《The C++ Programming Language》:Bjarne Stroustrup(C++之父)的权威著作。
  2. 在线课程
    • Coursera 上的 C++ 编程课程。
    • YouTube 上免费的 C++ 系列教程。
  3. 社区与文档
    • 参与C++相关的论坛(如CSDN、Staclass="tags" href="/C.html" title=c>ck Overflow)。
    • 阅读官方文档(https://en.class="tags" href="/C.html" title=c>cppreferenclass="tags" href="/C.html" title=c>ce.class="tags" href="/C.html" title=c>com)。

实践方法:

  1. 多写代码࿰class="tags" href="/C.html" title=c>c;多调试
    • 每学一个概念后࿰class="tags" href="/C.html" title=c>c;写至少两个示例代码并进行调试。
  2. 做小项目
    • 从简单的控制台程序开始࿰class="tags" href="/C.html" title=c>c;比如文件读写、计算器、小游戏等。
    • 慢慢过渡到图形界面或网络程序开发。
  3. 阅读他人代码
    • 阅读开源项目的代码࿰class="tags" href="/C.html" title=c>c;理解优秀代码的设计思路。
  4. 参加编程比赛
    • 比如 LeetCode 或 Codeforclass="tags" href="/C.html" title=c>ces࿰class="tags" href="/C.html" title=c>c;可以帮助你提升算法能力和C++的熟练度。

5. 保持耐心与兴趣
学习C++可能会面临以下困难:

  1. 复杂的语法:如模板、智能指针、多线程等。
  2. 调试困难:指针错误、内存泄漏、未定义行为可能让人头疼。

如何应对:

  • 将大问题拆解成小问题࿰class="tags" href="/C.html" title=c>c;逐步解决。
  • 不断重复基础知识࿰class="tags" href="/C.html" title=c>c;以加深理解。
  • 保持兴趣࿰class="tags" href="/C.html" title=c>c;尝试一些有趣的项目࿰class="tags" href="/C.html" title=c>c;比如写一个游戏、制作一个简单的图形程序。

小结
学习C++需要一个循序渐进的过程࿰class="tags" href="/C.html" title=c>c;从基础语法到面向对象编程࿰class="tags" href="/C.html" title=c>c;再到进阶的模板和并发编程࿰class="tags" href="/C.html" title=c>c;每一步都需要耐心和实践。通过充分利用学习资源、进行大量编码练习࿰class="tags" href="/C.html" title=c>c;以及挑战实际项目࿰class="tags" href="/C.html" title=c>c;你一定可以成为C++的高手。记住࿰class="tags" href="/C.html" title=c>c;学习的核心在于理解࿰class="tags" href="/C.html" title=c>c;而非死记硬背。

祝你学有所成࿰class="tags" href="/C.html" title=c>c;享受C++编程的乐趣!


class="tags" href="/C.html" title=c>class="blog-vote-box">

http://www.ppmy.cn/embedded/159675.html

相关文章

2025年2月2日(tcp_server_socket.listen(128))

tcp_server_socket.listen(128) 是 Python 中用于设置 TCP 服务器套接字&#xff08;socket&#xff09;在监听传入连接时的最大连接数。 具体来说&#xff1a; tcp_server_socket 是一个通过 socket.socket() 创建的服务器套接字。listen() 方法用于将套接字设置为“监听模式…

2024联想春招硬件嵌入式开发真题及答案解析

目录 一、单选题 1、在 Linux 系统中,以下哪两个命令可以显示系统中运行的进程状态( ) 2、对于如下C++程序: 3、关于操作系统内存管理中堆与栈的下列描述,哪一项是错误的( ) 4、通过文件目录可以实现从文件名到文件()的转化。 5、执行以下代码,结果输出为() …

CompletableFuture

在现代编程中&#xff0c;异步操作是提升程序性能和响应性的关键技术。Java 8 引入的CompletableFuture类&#xff0c;极大地简化了异步编程的复杂性&#xff0c;提供了一种强大且灵活的方式来处理异步任务及其结果。本文将深入探讨CompletableFuture的特性、使用方法以及在实际…

leetcode 1124. 表现良好的最长时间段

题目如下 数据范围 这题的代码好些但是思路十分复杂如果代码再难一点估计就是困难题了&#xff0c;我愿称为中等的困难题。 本题可以用另一个角度来思考&#xff0c;令超8小时为1否则为-1令pre[i]为i天之前的和即pre是前缀和数组。那么当i小于等于j时有pre[j] - pre[i]大于0…

HarmonyOS:ArkWeb进程

ArkWeb是多进程模型,分为应用进程、Web渲染进程、Web GPU进程、Web孵化进程和Foundation进程。 说明 Web内核没有明确的内存大小申请约束,理论上可以无限大,直到被资源管理释放。 ArkWeb进程模型图 应用进程中Web相关线程(应用唯一) 应用进程为主进程。包含网络线程、Vi…

Linux远程登陆

文章目录 ssh命令远程登陆Xshell远程登陆 ssh命令远程登陆 打开cmd&#xff0c;通过ssh命令进行远程登陆 Xshell远程登陆 1.下载Xshell与XFTP 下载链接 打开Xshell&#xff0c;新建会话 进行一些设置&#xff1a; 同样安装XFTP进行文件的传输&#xff1a;

使用mockttp库模拟HTTP服务器和客户端进行单元测试

简介 mockttp 是一个用于在 Node.js 中模拟 HTTP 服务器和客户端的库。它可以帮助我们进行单元测试和集成测试&#xff0c;而不需要实际发送 HTTP 请求。 安装 npm install mockttp types/mockttp模拟http服务测试 首先导入并创建一个本地服务器实例 import { getLocal } …

【Vite + Vue + Ts 项目三个 tsconfig 文件】

Vite Vue Ts 项目三个 tsconfig 文件 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件&#xff1f;首先我们先了解什么是 tsconfig.json ? 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件&#xff1f; 在使用 Vite 创建 vue-ts 模板的项目时&#xff0c;会发现除了 ts…