PTA 查找secret

安全保密是一项重要工作,如何判定文件是否涉密?我们给出一个简单的假定。

假定读入的数据内容中有“secret”字样,则说明为涉密文件。

下面请你编写程序,对输入的一串字符(最多80个字符,串中可能有空格)统计有无“secret”单词出现,如果出现,请说明其出现在第几个单词处(从1开始计数)。

注意:此单词可能多次出现。

输入格式:

输入一串长度不大于80个字符的字符串

输出格式:

如果字符串有”secret”,则输出”secret”位于第几个单词处(从1开始计数)

如果有多个”secret”,需全部标出,每个输出一行

如果字符串无“secret”,则输出No "secret"。
注意输出中有双引号。

输入样例1:

This's a secret file

输出样例1:

"secret" is pos 3

输入样例2:

My name    is  lisa

输出样例2:

No "secret"

输入样例3:

This's a secret file   that is not secret

输出样例3:

"secret" is pos 3
"secret" is pos 8
#include<string.h>
#include<stdio.h>
int main(){
    int i, c = 0, f = 0;//这里的c是计数器,f用来观察有没有secret
    char s[81];//题目中说长度不超过80,这里设为81以存下'\0'
    gets(s);
    int l = strlen(s);
    for (i = 0; i < l; i++)//仔细观察的话就会发现从遇到第一个非空格字符到遇到下一个空格是一个循环单元,这也是计算单词数的依据
    {
        if (s[i] != ' ')
        {
            if (s[i] == 's' && s[i + 1] == 'e' && s[i + 2] == 'c' && s[i + 3] == 'r' && s[i + 4] == 'e' && s[i + 5] == 't')
            {
                printf("\"secret\" is pos %d\n",c+1);//不要忘记转义字符\"用来输出"
                    f = 1;
            }
            else
            {
                for (i = i + 1; i < l; i++)
                {
                    if (s[i] == ' ')
                    {
                        c++;
                        break;
                    }
                }
            }
        }
    }
    if (f == 0) printf("No \"secret\"\n");
    return 0;
}

欢迎讨论指正

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值