Board logo

標題: 字串分割 [打印本頁]

作者: 鄭繼威    時間: 2023-5-20 15:09     標題: 字串分割

本帖最後由 鄭繼威 於 2024-3-9 15:16 編輯

結合stringstream 字串串流 (二)完成輸入加法字串算式


本帖隱藏的內容需要回復才可以瀏覽

作者: 陳宥霖    時間: 2023-5-20 15:29

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<string>
  5. using namespace std;

  6. int main()
  7. {
  8.     string str;      
  9.     cout<<"請輸入一個加法算式 (譬如 5+7+2): ";
  10.     cin>>str;      
  11.     str+="+";        
  12.       
  13.     string tmp="";        
  14.     int sum=0;      
  15.     stringstream ss;
  16.     int n;
  17.     for(int i=0;i<str.size();i++)
  18.     {
  19.         if(str[i]=='+')
  20.         {
  21.             ss<<tmp;
  22.             ss>>n;
  23.             sum=sum+n;        
  24.             
  25.             tmp="";                  
  26.                 ss.clear();               
  27.         }
  28.         else{
  29.             tmp+=str[i];        
  30.         }
  31.     }
  32.    
  33.     cout<<str.substr(0,str.length()-1)<<"="<<sum<<endl;
  34.       
  35.     system("pause");
  36.     return 0;
  37. }
複製代碼

作者: 陳泓亦    時間: 2023-5-20 15:30

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<string>
  5. using namespace std;

  6. int main(){
  7.    
  8.     string str;     
  9.     cout<<"請輸入一個加法算式 (譬如 5+7+2): ";
  10.     cin>>str;      
  11.     str+="+";        
  12.     string tmp="";   
  13.     int sum=0;   
  14.     stringstream ss;
  15.     int n;
  16.     for(int i=0;i<str.size();i++)
  17.     {
  18.         if(str[i]=='+')
  19.         {
  20.             ss<<tmp;
  21.             ss>>n;
  22.             sum=sum+n;        
  23.             tmp="";                    
  24.                 ss.clear();            
  25.         }
  26.         else{
  27.             tmp+=str[i];        
  28.         }
  29.     }
  30.     cout<<str.substr(0,str.length()-1)<<"="<<sum<<endl;
  31.       
  32.     system("pause");
  33.     return 0;
  34. }
複製代碼

作者: 宜儒    時間: 2023-5-20 16:01

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<string>
  5. using namespace std;
  6. int main()
  7. {
  8.         string str;
  9.         cout<<"請輸入一個加法算式(例:5+46+12):";
  10.         cin>>str;
  11.         str+="+";     //在字串最後補上"+",讓最後的數字可以算進sum
  12.        
  13.         string tmp="";   //在還沒遇到"+"之前,暫存要分割的字串
  14.         int sum=0;
  15.         stringstream ss;
  16.         int n;
  17.        
  18.         for(int i=0;i<str.length();i++)
  19.         {
  20.                 if(str[i]=='+')
  21.                 {
  22.                         //把tmp的東西累加進sum
  23.                         ss<<tmp;
  24.                         ss>>n;
  25.                         sum=sum+n;     //轉換後才能運算
  26.                        
  27.                         tmp="";     //加完後tmp要清空
  28.                         ss.clear();     //重複使用前須初始化
  29.                 }
  30.                 else
  31.                 {
  32.                         tmp+=str[i];
  33.                 }
  34.         }
  35.         cout<<str.substr(0,str.length()-1)<<"="<<sum<<endl;
  36.        
  37.         system("pause");
  38.         return 0;
  39. }
複製代碼

作者: 徐啟祐    時間: 2023-5-26 20:03

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<string>
  5. using namespace std;
  6. int main()
  7. {
  8.     string str;      
  9.     cout<<"請輸入一個加法算式(譬如 5+7+2):";
  10.     cin>>str;      
  11.     str+="+";        
  12.     string tmp="";        
  13.     int sum=0;      
  14.     stringstream ss;
  15.     int n;
  16.     for(int i=0;i<str.size();i++)
  17.     {
  18.         if(str[i]=='+')
  19.         {
  20.             ss<<tmp;
  21.             ss>>n;
  22.             sum=sum+n;        
  23.             tmp="";                  
  24.                 ss.clear();               
  25.         }
  26.         else{
  27.             tmp+=str[i];        
  28.         }
  29.     }
  30.     cout<<str.substr(0,str.length()-1)<<"="<<sum<<endl;
  31.    
  32.     system("pause");
  33.     return 0;
  34. }
複製代碼

作者: 黃品禎    時間: 2023-10-21 19:45

  1. #include<iostream>
  2. #include<sstream>
  3. using namespace std;

  4. int main()
  5. {
  6.     string str;
  7.     cout<<"請輸入一個加法算式(譬如:5+7+2)"<<endl;
  8.     cin>>str;
  9.     int sum=0;
  10.     for(int i=0;i<str.length();i++)
  11.     {
  12.         string tmp="";
  13.         int tmp_int;
  14.         if(str[i]=='+')
  15.         {
  16.                
  17.             stringstream ss;
  18.             //數字相加(string->int)
  19.             ss<<tmp;
  20.             ss>>tmp_int;
  21.             sum=sum+tmp_int;
  22.                         cout<<tmp<<endl<<tmp_int<<endl;
  23.             //重複使用所以清空
  24.             ss.clear();
  25.             tmp="";
  26.         }else
  27.         {
  28.             //字串相加
  29.             tmp=tmp+str[i];
  30.             cout<<tmp<<endl;
  31.         }
  32.     }
  33.     cout<<sum<<endl;

  34.     return 0;
  35. }
複製代碼

作者: 翁川祐    時間: 2024-3-9 15:00

  1. 1
複製代碼

作者: 江家同    時間: 2024-3-9 15:01

3213213213213213213211321212121;alkfhj;aoilehjga ;opsriouj tq5iprohuj q;bm'qpeuy q4h
作者: 郭博鈞    時間: 2024-3-9 15:01

1111111111




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2