当前位置: 代码迷 >> C语言 >> [求助]得不到结果啊??
  详细解决方案

[求助]得不到结果啊??

热度:151   发布时间:2006-05-10 17:04:00.0
[求助]得不到结果啊??


我写了关于文件里单词出现的次数,但是得不到结果!为什么呢??
源程序如下:
#include<stdio.h>
#include<string.h>

void main(int argc, char* argv[])
{ char word_1[10];
char word_2[10];
char ch;
int count;
FILE *fp;
if((fp=fopen("E:/file.txt","rt"))==NULL)
{ printf("cannot open the file\n");
return;}
printf("input the word:\n");
scanf("%s",word_2);
ch=fgetc(fp);
while(ch!=EOF)
{ int i=0;
while(ch!=' ')
{ word_1[i]=ch;
ch=fgetc(fp);
i++;}
word_1[i]='\0';
if((strlen(word_1)==strlen(word_2))&&(strcmp(word_1,word_2)==0))
count++;}
printf("%d",count);
fclose(fp);
}

搜索更多相关的解决方案: 得不到  结果  

----------------解决方案--------------------------------------------------------
E:/file.txt错了吧...E:\\file.txt
----------------解决方案--------------------------------------------------------
以下是引用TCL在2006-5-10 17:04:00的发言:


我写了关于文件里单词出现的次数,但是得不到结果!为什么呢??
源程序如下:
#include<stdio.h>
#include<string.h>

void main(int argc, char* argv[])
{ char word_1[10];
char word_2[10];
char ch;
int count;  /*没有初始为0*/
FILE *fp;
if((fp=fopen("E:/file.txt","rt"))==NULL)  /*既然是命令行,这个应该是arg[1],不过,你在测试的时候就不必了*/
{ printf("cannot open the file\n");
return;}
printf("input the word:\n");
scanf("%s",word_2);
ch=fgetc(fp);
while(ch!=EOF)
{ int i=0;
while(ch!=' ')
{ word_1[i]=ch;
ch=fgetc(fp);
i++;}
word_1[i]='\0';
if((strlen(word_1)==strlen(word_2))&&(strcmp(word_1,word_2)==0))
count++;}
printf("%d",count);
fclose(fp);
}


----------------解决方案--------------------------------------------------------
都是一样没结果啊!!
----------------解决方案--------------------------------------------------------
还需要怎样改啊 改不了的话就给老师 谢谢大哥们!!

----------------解决方案--------------------------------------------------------

我擅自帮你改变了一个判断标准:判断是否是单词不应该用空格来判断分隔,而应该用非字母来分隔

比如
#include<stdio.h>
#include<string.h>

这样,include这个单词应该出现了2次


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

/*判断一个字符是否为字母*/
int NaC(char c){
if( (c>='a' && c<='z') || (c>='A' && c<='Z') )
return 0;
return 1;
}

int main(void){
char word_1[20];
char word_2[20];
int ch;
int word_2_length,i,count=0;
FILE *fp;

if((fp=fopen("e:\\file.txt","rt"))==NULL){
printf("cannot open the file\n");
return;
}
printf("input the word:");scanf("%s",word_2);
word_2_length = strlen(word_2);
do{
i=0;
while( !NaC(ch=fgetc(fp)) && ch!=EOF ) word_1[i++]=ch;
word_1[i]='\0';
if( i==word_2_length && !strcmp(word_1,word_2) )
count++;
}while( ch!=EOF );
printf("%d\n",count);
fclose(fp);
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案