本帖最後由 鄭繼威 於 2022-7-30 11:14 編輯
試將字串 "123.45.6789" 以 "." 作為分割的依據進行分割,並將分割結果存入一陣列。
推!法1- #include<iostream>
- #include<cstdlib>
- #include<sstream>
- using namespace std;
- int main(){
- //變數型態 變數名字
- string str="123.45.6789.111213"; //要讀的字串
- str+="."; //最後加上.
- string res[50]; //陣列->存放分割後的字串
- string tmp=""; //存放我要分割的字串->在後沒有遇到.之前東西都會放這裡
- int index=0;
-
- //讀字串
- for(int i=0;i<str.size();i++){
- if(str[i]=='.'){
- res[index]=tmp; //把剛剛占存在tmp裡的東西放進res陣列裡
- tmp=""; //放進去後,要清空
- index++;
- }
- else{
- tmp+=str[i]; //123
- }
- }
- //讀陣列
- 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;
- }
複製代碼 |