题目大意:读入字符串,并把里面单词按字典序输出。
我的程序问题百出,在网上看到个比较好的代码,写的很棒。
#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;
}
不要闭门造车,要多研究研究别人优秀的代码,这样学习的效果才会好。
做题也不能只讲究量,要讲究质。或者要深入