m0_74153183 2022-10-25 23:44 采纳率: 95.5%
浏览 264
已结题

给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。

问题遇到的现象和发生背景

(为什么我的代码有错误)一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例 1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2)。
输入格式
共 22 行。

第 11 行为一个字符串,其中只含字母,表示给定单词;

第 22 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

输出格式
一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 00 开始);如果单词在文章中没有出现,则直接输出一个整数 -1−1。

img

用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>
int main()
{
    char a[1000], b[1000];
    int count1[100];
    int k=0;
    gets(a);
    gets(b);
    int len1 = strlen(a);
    int len2 = strlen(b);
    for (int i = 0; i < len1; i++)
    {
        if (a[0] == b[i])
        {
            int flag=1;
            for (int j = 0; j < len1; j++)
            {
                if (a[j] != b[i + j])
                {
                    flag=0;
                    break;
                }
            }
            if (flag)
            {
                count1[k] = i;
                k++;
                continue;
            }
        }
    }
    if (k > 0)
    {
        printf("%d ", k);
        printf("%d\n", count1[0]);
    }
    else
        printf("-1\n");
    return 0;
}

运行结果及报错内容

原本的正确运行结果应该是这样的

img


但是我的运行结果是这样的

img

  • 写回答

1条回答 默认 最新

  • X-道至简 2022-10-26 06:43
    关注

    第一个for循环 i<len1 改成<len2 还有没有处理大小写字母转换

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月25日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改