標題:
[作業] 字串分割 (一)
[打印本頁]
作者:
方浩葦
時間:
2024-10-5 13:49
標題:
[作業] 字串分割 (一)
試將字串 "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;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2