p1308 统计单词数

it2022-05-09  31

p1308 统计单词数

题目描述

代码

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main( ) { char c[20]= {0},s[1000010]= {0},c1; int i,j,lenth1,lenth2,ans=0,word=-1; bool k=0; gets(c);//c代表给定的单词 gets(s);//s代表给定的文章 lenth1=strlen(c); lenth2=strlen(s); for(i=0; i<lenth1; i++) if(c[i]>='A' && c[i]<='Z') c[i]+=-'A'+'a';//将c字符串转化为小写字母 for(i=0; i<lenth2; i++) if(s[i]>='A' && s[i]<='Z') s[i]+=-'A'+'a';//同上 c1=c[0]; for(i=0; i<=lenth2-lenth1; i++)//i表示单词的位置 if(s[i]==c1)//判断单词首位是否相同 if(i==0 || s[i-1]==' ') {//判断s[i]是否是独立的单词 for(j=1; j<lenth1; j++) if(s[i+j]!=c[j]) { k=1;//判断接下来的j位是否都相同 break; } if(k==0) if(i+lenth1==lenth2 || s[i+lenth1]==' ') { ans++;//计数 if(word==-1)//判断是不是单词第一次出现 word=i;//word为给定单词在给定文章里第一次出现的位置 } k=0;//清零,进入下一次判断 } if(word==-1) cout<<-1;//如果没有出现给定单词,输出-1 else cout<<ans<<" "<<word; return 0; }

最新回复(0)