Board logo

標題: C++ 字串分割 (一) [打印本頁]

作者: tonyh    時間: 2022-10-22 16:05     標題: C++ 字串分割 (一)

本帖最後由 tonyh 於 2022-12-15 19:35 編輯

試將字串 "123.45.6789" 以 "." 作為分割的依據進行分割,並將分割結果存入一陣列。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string str="123.45.6789";
  4. int data[50];
  5. stringstream ss;
  6. int n;
  7. int main()
  8. {
  9.     cin.tie(0);
  10.     cin.sync_with_stdio(0);

  11.     //cout<<str<<endl;
  12.     replace(begin(str),end(str),'.',' ');
  13.     //cout<<str<<endl;
  14.     ss<<str;
  15.     int index=0;
  16.     while(ss>>n)
  17.     {
  18.         data[index]=n;
  19.         index++;
  20.     }

  21.     for(int i=0; i<index; i++)
  22.         cout<<data[i]<<endl;

  23.     return 0;
  24. }
複製代碼
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string str="123.45.6789";
  4. stringstream ss;
  5. int n;
  6. int main()
  7. {
  8.     cin.tie(0);
  9.     cin.sync_with_stdio(0);
  10.     //cout<<str<<endl;
  11.     replace(str.begin(),str.end(),'.',' ');
  12.     //cout<<str<<endl;
  13.     ss<<str;
  14.     while(ss>>n)
  15.         cout<<n<<endl;

  16.     return 0;
  17. }
複製代碼
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string str="123.45.6789";
  4. stringstream ss;
  5. int n, index=0, data[100001];
  6. int main()
  7. {
  8.     cin.tie(0);
  9.     cin.sync_with_stdio(0);

  10.     replace(str.begin(),str.end(),'.',' ');
  11.     ss<<str;
  12.     while(ss>>n)
  13.     {
  14.         data[index]=n;
  15.         index++;
  16.     }
  17.     for(int i=0; i<index; i++)
  18.         cout<<data[i]<<endl;

  19.     return 0;
  20. }
複製代碼
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     string str="123.45.6789";
  7.     str+=".";
  8.     string res[50];
  9.     int index=0;
  10.     string tmp="";
  11.     for(int i=0; i<str.size(); i++)
  12.     {
  13.          if(str[i]=='.')
  14.          {
  15.              res[index]=tmp;
  16.              tmp="";
  17.              index++;
  18.          }else
  19.          {
  20.              tmp+=str[i];
  21.          }
  22.     }
  23.     for(int i=0; res[i]!=""; i++)
  24.         cout<<res[i]<<endl;
  25.     system("pause");
  26.     return 0;   
  27. }
複製代碼

作者: 李沛昂    時間: 2022-12-15 19:53

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     string str="123.45.6789";
  6.     stringstream ss;
  7.     int n;
  8.     cin.tie(0);
  9.     cin.sync_with_stdio(0);
  10.     replace(str.begin(),str.end(),'.',' ');
  11.     ss<<str;
  12.     while(ss>>n)
  13.         cout<<n<<endl;
  14.     return 0;
  15. }
複製代碼

作者: 黃宥華    時間: 2022-12-15 19:53

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string str="123.45.6789";
  4. int data[100];
  5. stringstream ss;
  6. int n,in=0;
  7. int main()
  8. {
  9.     cin.tie(0);
  10.     cin.sync_with_stdio(0);
  11.     cout<<str<<endl;
  12.     replace(begin(str),end(str),'.',' ');
  13.     ss<<str;
  14.     while(ss>>n){
  15.         data[in]=n;
  16.         in++;
  17.     }
  18.     for(int i=0;i<in;i++){
  19.         cout<<data[i]<<endl;
  20.     }
  21.     return 0;
  22. }
複製代碼

作者: 黃宇綸    時間: 2022-12-15 19:58

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. //#define int ll
  5. #define FOR(i,a,b) for(int i=a;i<b;i++)
  6. #define REP(i,n) FOR(i,0,n)
  7. #define REP1(i,n) FOR(i,1,(n)+1)
  8. #define RREP(i,n) for(int i=(n)-1;i>=0;i--)
  9. #define f first
  10. #define s second
  11. #define pb push_back
  12. #define ALL(x) x.begin(),x.end()
  13. #define SZ(x) (int)(x.size())
  14. #define SQ(x) (x)*(x)
  15. #define pii pair<int,int>
  16. #define Graph vector<vector<int>>
  17. #define IOS() cin.sync_with_stdio(0),cin.tie(0),cout.tie(0)
  18. const ll inf=(1ll<<63)-1;
  19. const int maxn=1e5+5;
  20. const ll mod=1e9+7;
  21. string s="123.45.6789";
  22. int n;
  23. stringstream ss;
  24. vector<int> v;
  25. signed main()
  26. {
  27.     IOS();
  28.     replace(ALL(s),'.',' ');
  29.     ss<<s;
  30.     while(ss>>n) {
  31.         v.pb(n);
  32.     }
  33.     REP(i,SZ(v)) cout<<v[i]<<"\n";
  34.     return 0;
  35. }
複製代碼

作者: 黃宇瑄    時間: 2022-12-15 20:04

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     string str="123.45.6789";
  6.     str+=".";
  7.     string res[50];
  8.     int index=0;
  9.     string tmp="";
  10.     for(int i=0; i<str.size(); i++)
  11.     {
  12.          if(str[i]=='.')
  13.          {
  14.              res[index]=tmp;
  15.              tmp="";
  16.              index++;
  17.          }else
  18.          {
  19.              tmp+=str[i];
  20.          }
  21.     }
  22.     for(int i=0; res[i]!=""; i++)
  23.         cout<<res[i]<<endl;
  24.     return 0;   
  25. }
複製代碼





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