在一篇文章中查找某个单词出现的次数
要求:输入:一个文本文件和需要查找的单词输出:单词出现的次数提示:最好输出以文件方式,显示在屏幕上也可...
要求: 输入:一个文本文件和需要查找的单词 输出:单词出现的次数提示: 最好输出以文件方式,显示在屏幕上也可
展开
推荐于2016-04-12
展开全部
这是第一个在运行时先输入一篇英语文章然后回车,接着输入想查的单词再回车就可以了。#include <stdio.h>
#include <string.h>
void change(char s[])
{
int i;
for(i=0;i<=100;i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]+=32;
}
}
}
main()
{ int i=0,j=0;
int occur=0;
char s1[100],s2[50];
printf("please input two strings\n");
printf("S1: \n");
gets(s1);
change(s1);
printf("s2: \n");
scanf("%s",s2);
change(s2);
while(s1[j]!='\0')
{ if ((s1[j]==s2[i])&&(s2[i]!='\0'))
{ i++; j++; }
else
j++;
if (s2[i]=='\0')
{ occur++;
i=0; }
}
printf("\nNumber of occurances: %d.\n", occur);
}这是第二个,就是先把一篇文章存成txt文档,然后存入一个指定的文件夹中,在运行时只需输入需要查找的单词就可以了,要回车哟~~#include<stdio.h>
#include<string.h>
#define MAX_size 1000
int flag=1,degree=0;
void change(char s[])
{
int i;
for(i=0;i<=1000;i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]+=32;
}
}
}
void Index(char str[],char word[],int position[])
{
int i,len_str,len_word,pos_str,pos_word,k=0,word_number=0;
len_word=strlen(word);
len_str=strlen(str);
for(i=0;i<len_str;i++)
{
while(str[i]==' '||str[i]==','||str[i]=='.')
i++;
word_number++;
for(pos_str=i,pos_word=0;pos_str<len_str && pos_word<len_word;pos_str++,pos_word++)
{
if(str[pos_str]!=word[pos_word])
break;
}
if(pos_word==len_word && (str[pos_str]=='\0'|| str[pos_str]==' '||str[pos_str]==','||str[pos_str]=='.'))
{
position[k++]=word_number;
degree++;
flag=0;
}
else
{
while(str[pos_str]!=' '&&str[pos_str]==','&&str[pos_str]=='.'&& pos_str<len_str)
pos_str++;
}
i=pos_str;
}
}
void main()
{
char str[MAX_size],word[20],ch;
int position[100],i; int k=0;
FILE *fp; if((fp=fopen("d:\\temp.txt","r"))!=NULL)
{
while(1)
{
ch=fgetc(fp);
if(ch==EOF) break;
str[k]=ch;
k++;
}
}
change(str);
printf("请输入要检索的单词: \n");
gets(word);
change(word);
Index(str,word,position);
if(flag)
printf("您输入的单词不在短文中。\n");
else
{
printf("您输入的单词在短文中,它共出现 %-d 次\n",degree);
}
fclose(fp);
}
#include <string.h>
void change(char s[])
{
int i;
for(i=0;i<=100;i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]+=32;
}
}
}
main()
{ int i=0,j=0;
int occur=0;
char s1[100],s2[50];
printf("please input two strings\n");
printf("S1: \n");
gets(s1);
change(s1);
printf("s2: \n");
scanf("%s",s2);
change(s2);
while(s1[j]!='\0')
{ if ((s1[j]==s2[i])&&(s2[i]!='\0'))
{ i++; j++; }
else
j++;
if (s2[i]=='\0')
{ occur++;
i=0; }
}
printf("\nNumber of occurances: %d.\n", occur);
}这是第二个,就是先把一篇文章存成txt文档,然后存入一个指定的文件夹中,在运行时只需输入需要查找的单词就可以了,要回车哟~~#include<stdio.h>
#include<string.h>
#define MAX_size 1000
int flag=1,degree=0;
void change(char s[])
{
int i;
for(i=0;i<=1000;i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]+=32;
}
}
}
void Index(char str[],char word[],int position[])
{
int i,len_str,len_word,pos_str,pos_word,k=0,word_number=0;
len_word=strlen(word);
len_str=strlen(str);
for(i=0;i<len_str;i++)
{
while(str[i]==' '||str[i]==','||str[i]=='.')
i++;
word_number++;
for(pos_str=i,pos_word=0;pos_str<len_str && pos_word<len_word;pos_str++,pos_word++)
{
if(str[pos_str]!=word[pos_word])
break;
}
if(pos_word==len_word && (str[pos_str]=='\0'|| str[pos_str]==' '||str[pos_str]==','||str[pos_str]=='.'))
{
position[k++]=word_number;
degree++;
flag=0;
}
else
{
while(str[pos_str]!=' '&&str[pos_str]==','&&str[pos_str]=='.'&& pos_str<len_str)
pos_str++;
}
i=pos_str;
}
}
void main()
{
char str[MAX_size],word[20],ch;
int position[100],i; int k=0;
FILE *fp; if((fp=fopen("d:\\temp.txt","r"))!=NULL)
{
while(1)
{
ch=fgetc(fp);
if(ch==EOF) break;
str[k]=ch;
k++;
}
}
change(str);
printf("请输入要检索的单词: \n");
gets(word);
change(word);
Index(str,word,position);
if(flag)
printf("您输入的单词不在短文中。\n");
else
{
printf("您输入的单词在短文中,它共出现 %-d 次\n",degree);
}
fclose(fp);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询