破题啊 写完发现理解错题意了 子目录下会有跟之前重名的
把输入的字符串存下来 排下序 然后依次找跟上面有没有重的
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cstdlib> 5 #include<algorithm> 6 #include<map> 7 #include<string> 8 #include<vector> 9 using namespace std; 10 vector<string>q[510]; 11 char sx[510][82][11]; 12 struct node 13 { 14 char c[82]; 15 }s[510]; 16 int o[510]; 17 bool cmp(node a,node b) 18 { 19 return strcmp(a.c,b.c)<0; 20 } 21 int main() 22 { 23 int n,i,j,k; 24 char c[11]; 25 scanf("%d%*c",&n); 26 for(i = 1; i <= n ; i++) 27 { 28 gets(s[i].c); 29 k = strlen(s[i].c); 30 for(j = 0 ; j < k ; j++) 31 if(s[i].c[j]==92) 32 s[i].c[j] = 1; 33 } 34 sort(s+1,s+n+1,cmp); 35 for(i = 1; i <= n ; i++) 36 { 37 int g = 0; 38 k = strlen(s[i].c); 39 for(j = 0 ; j < k ;j++) 40 { 41 if(s[i].c[j]!=1) 42 c[g++] = s[i].c[j]; 43 else 44 { 45 c[g] = '