| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 782 人关注过本帖
标题:[求助]一段关于单词出现次数统计的程序代码
只看楼主 加入收藏
leo918
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-11-12
收藏
 问题点数:0 回复次数:1 
[求助]一段关于单词出现次数统计的程序代码

红色部分没看懂,谁能给解释一下,谢谢!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ctype.h"
#define MAX 10000


void main()
{
FILE * fp;
int ch ;
int temp = -1;
int space = 0;
char array[MAX][30];
int number = 0;
int i = 0 ;
char *lest,*str;
char * p;
lest=(char *)malloc(30);
str =(char *)malloc(30);
p = str;
if(lest == NULL || str== NULL)
{
printf("分配内存失败\n");
exit(1);
}

if(NULL == (fp = fopen("1.txt","rb"))) //打开文件
{
printf("文件打开失败\n");
exit(1);
}

ch = fgetc(fp);
while(ch != EOF)
{
if( isalpha(ch) && (ispunct(temp)||isspace(temp))) //进行条件判断
space++;
temp = ch;
ch = fgetc(fp);
}
printf("In all the letter total is: %d\n",++space);
rewind(fp);
fscanf(fp,"%s",lest);
for(number = 0;number <= space;number++)
{
for(i = 0;i<=(int)strlen(lest);i++)
{
if(i<=(int)strlen(lest))
array[number][i] = '\0';
if(ispunct(*(lest+i))&&(i == (int)strlen(lest)-1)) //进行条件判断
{
array[number][i] = '\0';
break;
}
array[number][i] = *(lest+i);
}
fscanf(fp,"%s",lest);
}
fclose(fp);
for(number=0; number<=space-1;number++)
{
str = array[number];
for(i=number+1; i<=space-1;i++)
{
temp =1;
if(!strcmp(str,array[i]))
temp++;
}
printf("%20s :%d\n",str,temp);
}
free(p);
free(lest);
}

搜索更多相关主题的帖子: 单词 int char include str 
2006-11-21 21:52
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
把所有单词按顺序记录到数组array中

2006-11-22 10:22
快速回复:[求助]一段关于单词出现次数统计的程序代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019945 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved