P1308 统计单词数

P1308 统计单词数

 这个dalao是原版  (写着写着断电了QAQ但还是要mod  dalao)

指针做法

思路

1.输入 文章 和 单词    (gets就可以)

2.全部化成小写字母    (因为本题不区分大小写)

3.使用系统函数查找单词

4.判断是否找到并输出

注释

    isupper[ ]   判断是否为大写字母

    tolower[ ]   把大写祖母转化为小写字母

    strstr[ ]       给定一个字符串,在一个字符串里寻找它,如果找到它就返回首次出现的指针,否                          则返回NULL

   

     ans       单词出现的次数

     ans1     单词第一次出现的位置



代码

#include<bits/stdc++.h>
#include<cstring>
#include<cctype>
#include<cstdio>

using namespace std;

char text[1000001],word[15],*p,*q;
int ans=0,ans1=-1;
bool flag=false;

void dahuaxiao(char *a)
{
    for(int i=0;a[i];i++)
        if(isupper(a[i])) a[i]=tolower(a[i]);
}

int main()
{
    gets(word);
    gets(text);
    
    dahuaxiao(word);
    dahuaxiao(text);
    
    int len=strlen(word);
    p=text;
    
    for( ; q=strstr(p,word) ; )
    {
        if((q!=NULL)&&(q==text||*(q-1)==' ')&&(*(q+len)==''||*(q+len)==' '))
        {
            ans++;
            if(flag==false) 
            {
                flag=true;
                ans1=q-text;
            }
        }
        p=q+len;
    }
    
    if(flag)     printf("%d %d ",ans,ans1);
    else        printf("%d",ans1);
    
    return 0;
    
}
原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10958692.html