C语言问题,在一段文章中查找某个单词出现的次数

请问怎么样才能让其循环运行,例如在程序结束后输出“是否继续,如要继续,输入‘1’,如要结束,输入‘0’??#include<stdio.h>#include<string... 请问怎么样才能让其循环运行,例如在程序结束后输出“是否继续,如要继续,输入‘1’,如要结束,输入‘0’??
#include<stdio.h>
#include<string.h>

#define MAX_size 5000
int flag=1,degree=0;
void change(char s[])
{
int i;
for(i=0;i<=5000;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:\\test.txt","r"))!=NULL)
{
while(1)
{
ch=fgetc(fp);
if(ch==EOF) break;
str[k]=ch;
k++;
}
}
change(str);

printf("******************************\n");
printf("\n");
printf(" 欢迎来到单词查找界面! (*^__^*) \n");
printf("\n");
printf("******************************\n");
printf("请输入您要查找的单词:\n");
gets(word);
change(word);
Index(str,word,position);
if(flag)
printf("囧╮(╯_╰)╭\n抱歉,没有在文章中找到您要查找的单词!\n");
else
{
printf("O(∩_∩)O\n您输入的单词在短文中,共出现^ %d ^次\n",degree);
}
fclose(fp);
}
运行不了啊! 输入1或0的时候会出现这个
展开
 我来答
笑谈词穷i
推荐于2016-08-05 · TA获得超过4.4万个赞
知道大有可为答主
回答量:4983
采纳率:90%
帮助的人:493万
展开全部

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

#define MAX_size 5000
int flag=1,degree=0;
void change(char s[])
{
int i;
for(i=0;i<=5000;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];
int sure=1;//。。。。

int k=0;
FILE *fp;

if((fp=fopen("d:\\test.txt","r"))!=NULL)
{
 while(1)
 {
  ch=fgetc(fp);
  if(ch==EOF) break;
  str[k]=ch;
  k++;
 }
}
change(str);
while(sure){//.....

printf("******************************\n");
printf("\n");
printf("     欢迎来到单词查找界面!         (*^__^*)  \n");
printf("\n");
printf("******************************\n");
printf("请输入您要查找的单词:\n");

 gets(word);
 change(word);
 Index(str,word,position);
 if(flag)
  printf("囧╮(╯_╰)╭\n抱歉,没有在文章中找到您要查找的单词!\n");
 else
 {
  printf("O(∩_∩)O\n您输入的单词在短文中,共出现^ %d ^次\n",degree);
 }
 printf("输入:0,结束,非0,则继续查找\n");//....
 scanf("%d",&sure);//.....
}
fclose(fp);
}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ant_hacker
推荐于2018-02-11 · TA获得超过179个赞
知道答主
回答量:134
采纳率:0%
帮助的人:0
展开全部
额,我晕,无语了,我竟然连scanf都写错了 少写了&
下面是正确代码,调试vc6.0调试通过
#include<stdio.h>
#include<string.h>

#define MAX_size 5000
int flag=1,degree=0;
void change(char s[])
{
int i;
for(i=0;i<=5000;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];
int sure=1;//。。。。

int k=0;
FILE *fp;

if((fp=fopen("d:\\test.txt","r"))!=NULL)
{
while(1)
{
ch=fgetc(fp);
if(ch==EOF) break;
str[k]=ch;
k++;
}
}
change(str);
while(sure){//.....

printf("******************************\n");
printf("\n");
printf(" 欢迎来到单词查找界面! (*^__^*) \n");
printf("\n");
printf("******************************\n");
printf("请输入您要查找的单词:\n");

gets(word);
change(word);
Index(str,word,position);
if(flag)
printf("囧╮(╯_╰)╭\n抱歉,没有在文章中找到您要查找的单词!\n");
else
{
printf("O(∩_∩)O\n您输入的单词在短文中,共出现^ %d ^次\n",degree);
}
printf("输入:0,结束,非0,则继续查找\n");//....
scanf("%d",&sure);//.....
}
fclose(fp);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式