首页 > 其他分享 >洛谷P1308 [NOIP2011 普及组] 统计单词数C语言

洛谷P1308 [NOIP2011 普及组] 统计单词数C语言

时间:2024-07-09 20:29:51浏览次数:20  
标签:count 洛谷 NOIP2011 int C语言 单词 length str check

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

int main()
{
    char check[11];
    char str[1000001];

    int f_num = 0;
    int count = 0;
    int i = 0;
    int j = 0;
    int p = 1;

    gets(check);
    gets(str);

    int length_S, length_C;
    length_C = strlen(check);
    length_S = strlen(str);

    for (i = 0; i < length_C; i++){
        check[i] = tolower(check[i]);
    }
    for (i = 0; i < length_S; i++){
        str[i] = tolower(str[i]);
    }

    for (i = 0; i < length_S; i++){
        // 对每一个单词的判断 共三种情况:1、要么第一个字母在最开头且单词结尾为空格,
        //                             2、要么在末尾即单词开头字母的位置为b的长度减去a的长度且单词前一位为空格,
        //                             3、要么单词在中间他的左边和右边同时为空格。 同时默认次单词长度和要找的a单词长度相等,若不等,则肯定不是要找的单词。
        if (i == 0 && str[i+length_C] == ' ' || i == length_S-length_C && str[length_S-length_C-1] == ' ' || str[i-1] == ' ' && str[i+length_C] == ' '){
            for (j = 0; j < length_C; j++){
                if (str[i+j] == check[j]){
                    p = 1;
                } else {
                    p = 0;
                    break; //一定要break啊!!!不然下一次匹配成功了,p是1啦,就出现结果啦!!!
                }
            }
            if (p){
                count++;
                if (count == 1){
                    f_num = i;
                }
            }
        }
    }

    if (count == 0){
        printf("-1");
    } else {
        printf("%d %d", count, f_num);
    }
    return 0;
}

标签:count,洛谷,NOIP2011,int,C语言,单词,length,str,check
From: https://blog.csdn.net/qq_74568860/article/details/140299144

相关文章

  • 洛谷 P6464 [传智杯 #2 决赛] 传送门
    通过便利每两个点之间的传送门,再便利一次其他点与传送点的路长度,没路的情况是最大值不会考虑,有路就取经过传送门和原本最短路的最小值/*台州第一深情*/include<bits/stdc++.h>usingnamespacestd;usingi64=long;usingll=longlong;typedefpair<int,int>PII;co......
  • 从零开始学习嵌入式----C语言数据存储(大端与小端)
     目录一、什么是数据中的高位与低位?内存空间中的高地址与低地址?1)内存空间中的低地址与高地址2)数据中的高位与低位二、什么是大端存储与小端存储1)大端存储2)小端存储三、大小端存储方法的测试1)使用指针测试大小端2)使用共用体测试大小端一、什么是数据中的高位与......
  • C语言学习笔记(02)——关键字概念
    sizeof编译器给我们查看内存空间容量的一个工具不存在函数实现,在任何情况下都可以使用inta:printf("theais%d\n",sizeof(a));printf("theais%lu\n",sizeof(a)); //最好使用%lu打印,因为sizeof默认返回的是unsignedlong类型的>>>4char:硬件处理的最小单位;8bit=1B,8bi......
  • c语言实战-极简扫雷
    C语言/c++写的C语言实战项目扫雷结构比较清晰,仅供参考:核心是扫雷的递归算法实现上代码:#include<stdio.h>#include<stdlib.h>#include<time.h>#defineSIZE10#defineMINES15charboard[SIZE][SIZE];//游戏棋盘//初始化棋盘,'-'表示未揭示的区域voidinit......
  • 【C语言】指针(3):探索-不同类型指针变量
    目录一、字符指针变量二、数组指针变量三、二维数组传参的本质四、函数指针变量4.1函数指针变量4.2函数指针变量的使用4.3函数指针变量的拓展五、函数指针数组六、转移表的应用通过深入理解指针(1)和深入理解指针(2),我们对指针有了一个初步的了解,学会了一级指针、二......
  • 数据结构——二叉树之c语言实现堆与堆排序
    目录前言:1.二叉树的概念及结构1.1特殊的二叉树 1.2二叉树的存储结构  1.顺序存储2.链式存储 2.二叉树的顺序结构及实现 2.1堆的概念   ​编辑2.2堆的创建3.堆的实现3.1堆的初始化和销毁 初始化:销毁: 插入:向上调整:删除: 向下调整: 堆顶元素......
  • 经典C语言笔试面试题目
    01.请填写bool,float,指针变量与“零值”比较的if语句。提示:这里“零值”可以是0,0.0,FALSE或者“空指针”。例如intn与“零值”比较的if语句为:if(n==0)if(n!=0)以此类推。请写出boolflag与“零值”比较的if语句:if(flag){}if(!fl......
  • C++入门(C语言过渡)
    文章目录前言一、C++关键字二、命名空间三、C++输入&输出四、缺省参数五、函数重载六、引用七、inline八、nullptr总结前言C++是一种通用的、高级的、静态类型的编程语言,它在20世纪80年代由丹尼斯·里奇创建的C语言基础上发展而来。以下是C++发展的一些重要里程碑。......
  • 嵌入式C语言面试相关知识——CPU、进程和线程相关(相关问题很多,会经常过来更新)
    嵌入式C语言面试相关知识——CPU、进程和线程相关一、博客声明二、自问题目——CPU相关1、什么是中断?如何处理中断?2、解释上下文切换(ContextSwitch)?3、在嵌入式中如何优化CPU使用?三、自问题目——进程相关1、什么是进程?2、嵌入式系统中进程和线程的区别是什么?3、在嵌......
  • 嵌入式学习——C语言概述(编译原理)
    一、计算机的组成部分输入设备、内存、cpu(运算器、控制器)、外存储器、输出设备二、C语言编译的步骤(面试重点)1、预处理:宏指令的替换(#include<stdio.h>等等)、删除注释、添加行号等。      例如:gcc-Ehello.c-ohello.ihello.i文件内容:    这段代码就......