標題:
字串分割
[打印本頁]
作者:
鄭繼威
時間:
2023-10-13 17:29
標題:
字串分割
本帖最後由 鄭繼威 於 2023-10-13 21:16 編輯
結合
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]=='+')
{
//累加的動作
//1. string tmp轉成int z(型態轉換)
ss<<tmp;
ss>>n;
//2. 累加n
sum=sum+n; //轉換後才能運算
//3. 清空ss,tmp
tmp=""; //加完後tmp要清空
ss.clear(); //重複使用前需初始化
}
else{
//字串相加
tmp+=str[i];
}
}
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-10-13 21:08
此帖僅作者可見
作者:
李柏漢
時間:
2023-10-19 23:41
此帖僅作者可見
作者:
蔡沛倢
時間:
2023-10-21 10:55
此帖僅作者可見
作者:
朱奕祈
時間:
2024-5-21 20:03
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2