您的位置:首页 > 其它

UVA - 10815 Andy's First Dictionary

2014-09-24 15:31 134 查看
题目大意:给出几个句子,要求把单词分离出来并进行排序

解体思路:用字符串存储单词,然后再排序

体会:冒泡排序法有点过时了
#include<cstdio>
#include<cstring>
#include<algorithm>

int cmp_string(const void *a, const void *b) {
	return strcmp((char *)a, (char *)b);
}
int main() {
	char str[210];
	char word[150010][50];
	memset(str,'\0',sizeof(str));
	memset(word,'\0',sizeof(word));
	int number = 0;
	while(gets(str)) {
	int len = strlen(str);
	for(int i = 0; i < len; i++)
		if(str[i] >= 'A' && str[i] <= 'Z')
			str[i] = str[i] + 32;

	for(int i = 0; i < len; i++)
		if(str[i] >= 'a' && str[i] <= 'z') {
			for(int j = 0; ;j++) {
				if(str[i] >= 'a' && str[i] <= 'z') {
					word[number][j] = str[i];
					i++;
				}
				else
					break;	
			}
		number++;			

		}
	}
	
/*	for(int i = 0; i < number; i++)
		for(int j = i + 1; j < number; j++)
			if(strcmp(word[i],word[j]) > 0 ) {
				char t[100];
				strcpy(t,word[i]);
				strcpy(word[i],word[j]);
				strcpy(word[j],t);
			}
*/
	qsort(word,number,sizeof(word[0]),cmp_string);
	for(int i = 0; i < number; i++) {
		if(i == 0)
			printf("%s\n",word[i]);
		if( i != 0 && strcmp(word[i],word[i - 1]) != 0)
			printf("%s\n",word[i])	;
	}

	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: