返回列表 發帖

[作業] 字串分割 (一)

試將字串 "123.45.6789" 以 "." 作為分割的依據進行分割,並將分割結果存入一陣列,再垂直打印出來。




建議解法
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<algorithm>
  5. using namespace std;
  6. string str="123.45.6789";
  7. int data[50];
  8. stringstream ss;
  9. int main()
  10. {
  11.     //cout<<str<<endl;
  12.     replace(begin(str),end(str),'.',' ');
  13.     //cout<<str<<endl;
  14.     ss<<str;
  15.     int n, 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<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. }
複製代碼
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     string str="123.45.6789";
  7.     string res[50];
  8.     string tmp="";
  9.     int j=0;
  10.     for(int i=0; i<str.length(); i++)
  11.     {
  12.         if(str[i]=='.')
  13.         {
  14.             res[j]=tmp;
  15.             tmp="";
  16.             j++;
  17.             continue;   //跳過當下的迴圈
  18.         }
  19.         tmp+=str[i];
  20.         //cout<<str[i]<<endl;
  21.     }
  22.     res[j]=tmp;
  23.     for(int i=0; res[i]!=""; i++)
  24.         cout<<res[i]<<endl;
  25.     system("pause");     
  26.     return 0;   
  27. }
複製代碼

返回列表