编程: 写一个单词计数程序
额。。。单词的定义。。这里按书上说的。。。采用简单的定义————即字母和数字组成的一个序列!!
代码:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#define bool _Bool
#define true 1
#define false 0
#define MAXNAME 30
size_t wordCount(FILE *fin);
int main(int argc, char *argv[])
{
char name[MAXNAME] = "";
printf("input name:\n");
scanf("%s", name);
FILE *fp = fopen(name, "r");
if (fp == NULL) {
perror("open file error");
exit(1);
}
printf("%ld\n", wordCount(fp));
return 0;
}
size_t wordCount(FILE *fin)
{
size_t nWord = 0;
bool inWord = false;
int c;
while ((c = fgetc(fin)) != EOF) {
switch (inWord) {
case false:
{
if (isalnum(c)) {
inWord = true;
++nWord;
}
}
continue;
case true:
{
if (! isalnum(c)) {
inWord = false;
}
}
continue;
default:
break;
}
}
return nWord;
}
。。。没什么说的。。。