返回列表 發帖

字串分割 (一)

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



推!法1
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. using namespace std;

  5. int main(){
  6.         //變數型態 變數名字
  7.         string str="123.45.6789.111213";        //要讀的字串
  8.         str+=".";        //最後加上.
  9.         string res[50]; //陣列->存放分割後的字串
  10.         string tmp="";        //存放我要分割的字串->在後沒有遇到.之前東西都會放這裡
  11.         int index=0;
  12.        
  13.         //讀字串
  14.         for(int i=0;i<str.size();i++){
  15.                 if(str[i]=='.'){
  16.                         res[index]=tmp;        //把剛剛占存在tmp裡的東西放進res陣列裡
  17.                         tmp="";        //放進去後,要清空
  18.                         index++;
  19.                 }
  20.                 else{
  21.                         tmp+=str[i];        //123
  22.                 }
  23.         }
  24.         //讀陣列
  25.         for(int i=0;res[i]!="";i++){
  26.                 cout<<res[i]<<endl;
  27.         }
  28.        
  29.         system("pause");
  30.         return 0;
  31. }
複製代碼
法二
  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. }
複製代碼

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

TOP

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

  5. int main()
  6. {
  7.     string str="123.45.6789.111213";
  8.     str+=".";
  9.     string res[50];
  10.     string tmp="";
  11.     int index=0;
  12.     for(int i=0;i<str.size();i++)
  13.     {
  14.         if(str[i]=='.')
  15.         {
  16.             res[index]=tmp;
  17.             tmp="";
  18.             index++;
  19.         }
  20.         else
  21.         {
  22.             tmp+=str[i];
  23.         }
  24.     }
  25.     for(int i=0;res[i]!="";i++)
  26.     {
  27.         cout<<res[i]<<endl;
  28.     }
  29.     system("pause");
  30.     return 0;
  31. }
複製代碼

TOP

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

TOP

返回列表