题解 P1308 【统计单词数】
zqy1018
2015-11-15 15:30:41
第一次发题解 好紧张啊
这题可以用strstr函数过
```cpp
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char k[1000005],s[11];
int y=0,fst=-1;
void sc();
void sc(char i[]){
char *p=strstr(i,s); //函数返回一个指向单词出现位置的指针
if(p!=NULL){
if(((p==k)||(*(p-1)==' '))
&&((*(p+strlen(s))==' ')||(*(p+strlen(s))=='\0'))){
//判断是否是单词而不是长单词的一部分
if(fst==-1)fst=p-k; //第一次出现的位置
y++;sc(p+1); //是的话就递归寻找
}else sc(p+1);
}
}
int main(){
scanf("%s",s); getchar();//吞掉换行
scanf("%[^\n]",k);
int a,b=strlen(s),c=strlen(k);
for(a=0;a<b;a++){
s[a]=tolower(s[a]);
}
for(a=0;a<c;a++){
k[a]=tolower(k[a]);
}
sc(k);
if(fst==-1)printf("-1\n");
else printf("%d %d\n",y,fst);
return 0;
}
```