c++,90分,求大神帮帮忙看看~
#include<bits/stdc++.h>
using namespace std;
vector<string> vt;
void split(string s){
int i=0,j;
while(i<s.size()){
for(j=i;j<s.size()&&s[j]!='/';j++);
if(s.substr(i,j-i).size()!=0)
vt.push_back(s.substr(i,j-i));
i=j+1;
}
for(i=0;i<vt.size();i++){
if(vt[i]=="."){
vt.erase(vt.begin()+i);
i--;
}
}
}
int main() {
int i,j,k,temp,p=0;
string s,now;
int n;
scanf("%d",&n);
cin>>now;
while(n--){
string ans;
vt.clear();
cin>>s;
if(s.size()==0)
ans=now;
else{
if(s[0]!='/')//相对路径
s=now+"/"+s;
split(s);
for(i=0;i<vt.size();i++){
if(vt[i]==".."){
vt.erase(vt.begin()+i);
if(i!=0){
i--;
vt.erase(vt.begin()+i);
}
i--;
}
}
for(i=0;i<vt.size();i++)
ans+="/"+vt[i];
if(ans.size()==0) ans="/";
}
cout<<ans<<endl;
}
return 0;
}