標題:
[作業] 字串分割 (二)
[打印本頁]
作者:
鄭繼威
時間:
2023-3-22 19:19
標題:
[作業] 字串分割 (二)
本帖最後由 鄭繼威 於 2023-3-29 20:11 編輯
結合
字串分割 (一)
和
stringstream 字串串流 (二)
完成輸入加法字串算式
推法1-分割的時候順便+
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<string>
using namespace std;
int main(){
//變數型態 變數名字
string str; //要讀的字串
cout<<"請輸入一個加法算式 (譬如 5+7+2): ";
cin>>str;
str+="+"; //最後加上+
string tmp=""; //存放我要分割的字串->在後沒有遇到+之前東西都會放這裡
int sum=0; //累加
stringstream ss;
int n;
//讀字串
for(int i=0;i<str.size();i++)
{
if(str[i]=='+')
{
//型態轉換(char->int)
ss<<tmp;
ss>>n;
sum=sum+n; //轉換後才能運算
tmp=""; //加完後tmp要清空
ss.clear(); //重複使用前需初始化
}
else{
tmp+=str[i]; //123
}
}
cout<<str.substr(0,str.length()-1)<<"="<<sum<<endl;
system("pause");
return 0;
}
複製代碼
法2-分割放入陣列後再+
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<string>
using namespace std;
int main()
{
int sum=0;
string str;
cout<<"請輸入一個加法算式 (譬如 5+7+2): ";
getline(cin,str);
string res[50];
string tmp="";
int j=0;
for(int i=0; i<str.length(); i++)
{
if(str[i]=='+')
{
res[j]=tmp;
tmp="";
j++;
continue;
}
tmp+=str[i];
}
res[j]=tmp;
for(int i=0; res[i]!=""; i++)
{
int n;
stringstream ss;
ss<<res[i];
ss>>n;
sum+=n;
}
cout<<sum<<endl;
system("pause");
return 0;
}
複製代碼
作者:
李彣
時間:
2023-3-22 21:22
此帖僅作者可見
作者:
黃裕恩
時間:
2023-3-25 23:39
此帖僅作者可見
作者:
林劭澧
時間:
2023-3-29 19:52
此帖僅作者可見
作者:
林劭杰
時間:
2023-3-29 20:03
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2