?? C++ ??? ?? ?? - ?? ???? ?? ?? ?? ??
2021/5/31 12:25:27
本文主要是介绍?? C++ ??? ?? ?? - ?? ???? ?? ?? ?? ??,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目
4+125+4+77+102 등으로 표현된 덧셈식을 문자열로 입력받아 계산하는 프로그램 작성하라.
必要函数
getline()是定义在头文件中,功能是取一行字符串,读到换行符\n结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取
字符串输入到排列里面
ex:
getline(cin,s,’\n’);
读取输入从cin输入的函数,在s中保存,在‘\n’ 位置(换行)结束
substr 函数读取一部分的字符串
stoi 函数将字符串的文字形式转换为数字形式
解题思路
检查算式,分两种情况第一情况:数值结束“2+3+4”,计算sheng
第二情况:加号结束“2+3+”,计算前面的
第三种情况:不是上面两种情况下,分离出不是算式的符号
输入数式
#include <iostream> #include <string> using namespace std; int main(int argc, const char * argv[]) { string s; cout << " 7+23+5+100+25 一样的加法字符串输入" << endl; getline(cin,s,'\n');//输入字符串
识别数式中的加号和成分
int sum = 0; int startIndex = 0;//指引检测字符串里面 while(true){ int fIndex = s.find('+' , startIndex);//寻找“+” if(fIndex == -1){//没有“+”的情况下 string part = s.substr(startIndex); if(part == "")break;//在➕后面直接结束的情况,即“2+3+” cout << part << endl; sum +=stoi(part);//将字符串转换为数字 break; }
分离数字并计算
int count =fIndex - startIndex;//分离出每个数字 string part = s.substr(startIndex,count);//从startindex,count的指数用字符串的形式体现 cout << part << endl; sum += stoi(part);//将字符串转换为数字 startIndex = fIndex+1;//推进index的检测 } cout << "숫자들의 합은 " << sum << endl; }
这篇关于?? C++ ??? ?? ?? - ?? ???? ?? ?? ?? ??的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享