UVa 10815 - Andy's First Dictionary

题目大意:读入字符串,并把里面单词按字典序输出。

我的程序问题百出,在网上看到个比较好的代码,写的很棒。


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

char d[1000010][210] = {'\0'};
int n = 0, len = 0;

int cmp_string(const void *_a, const void *_b)
{
	char *a = (char *) _a;
	char *b = (char *) _b;
	return strcmp(a, b);
}

int main()
{	
	char ch;
	while(1)
	{
		if((ch = getchar()) == EOF)
			break;
		if(isalpha(ch))
			d[n][len++] = tolower(ch);
		else if(isalpha(d[n][0]))			
		{
			d[n++][len] = '\0';
			len = 0;
		}
	}
	qsort(d, n, sizeof(d[0]), cmp_string);
	int i;
	for(i = 0; i < n; i++)
		if(strcmp(d[i], d[i + 1]))
			printf("%s\n", d[i]);
	return 0;
}

不要闭门造车,要多研究研究别人优秀的代码,这样学习的效果才会好。

做题也不能只讲究量,要讲究质。或者要深入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值