試將字串 "123.45.6789" 以 "." 作為分割的依據進行分割,並將分割結果存入一陣列,再垂直打印出來。
建議解法- #include<iostream>
- #include<cstdlib>
- #include<sstream>
- #include<algorithm>
- using namespace std;
- string str="123.45.6789";
- int data[50];
- stringstream ss;
- int main()
- {
- //cout<<str<<endl;
- replace(begin(str),end(str),'.',' ');
- //cout<<str<<endl;
- ss<<str;
- int n, index=0;
- while(ss>>n)
- {
- data[index]=n;
- index++;
- }
- for(int i=0; i<index; i++)
- cout<<data[i]<<endl;
- return 0;
- }
複製代碼 舊解法- #include<iostream>
- #include<cstdlib>
- using namespace std;
- int main()
- {
- string str="123.45.6789";
- str+=".";
- string res[50];
- int index=0;
- string tmp="";
- for(int i=0; i<str.size(); i++)
- {
- if(str[i]=='.')
- {
- res[index]=tmp;
- tmp="";
- index++;
- }else
- {
- tmp+=str[i];
- }
- }
- for(int i=0; res[i]!=""; i++)
- cout<<res[i]<<endl;
- system("pause");
- return 0;
- }
複製代碼- #include<iostream>
- #include<cstdlib>
- using namespace std;
- int main()
- {
- string str="123.45.6789";
- 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];
- //cout<<str[i]<<endl;
- }
- res[j]=tmp;
- for(int i=0; res[i]!=""; i++)
- cout<<res[i]<<endl;
- system("pause");
- return 0;
- }
複製代碼 |