您的位置:首页 > 其它

//字母重排

2016-04-21 18:50 330 查看
//字母重排#include<string>#include<iostream>#include<stdlib.h>#include<algorithm>using namespace std;char word[2000][10],sorted[2000][10];//注意二维数组的定义I!! //比较自符int cmp_char(const void*_a,const void*_b){ char*a=(char*)_a; char *b=(char*)_b; return *a-*b;}int cmp_string(const void*_a,const void*_b){ char*a=(char*)_a; char*b=(char*)_b; return strcmp(a,b);}int main(){ int n=0; for(;;) { cin>>word
; if(word
[0]=='*')break;//完成字典的输入 n++; } qsort(word,n,sizeof(word[1]),cmp_string);//给字典中的单词排序 for(int i=0;i<n;i++) { strcpy(sorted[i],word[i]);//把排序后的字典单词放到sorted中 qsort(sorted[i],strlen(sorted[i]),sizeof(char),cmp_char);//给每个单词排序 }//至此完成了字典中德单词,单词中德字母重拍了 //接下再进行输入 char s[6]; while(cin>>s&&s) { sort(s,s+strlen(s));//这里我用了sort函数,其实和用qsort差不多,不过比较方便 int found=0; for(int i=0;i<n;i++) { if(strcmp(sorted[i],s)==0) { found=1;cout<<word[i];//注意是输出原来的字典单词而不是排序后的sorted的 } } if(!found)cout<<(":("); cout<<endl; } return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: