当前位置: 首页 > news >正文

fgets、scanf存字符串应用

题目1

夺旗(英语:Capture the flag,简称 CTF)在计算机安全中是一种活动,当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。

非常崇拜探姬的小学妹最近迷上了 CTF,学长给了她一个压缩包,让她找到其中的 flag 并提交。

她今天终于破解了压缩包的密码,但解压后她却发现,里面竟然有足足 100 个 txt 文件!她使用 Ctrl+F 大法搜索过后,发现了这些 txt 文件里面有着相同的规律:

每个 txt 文件中都藏着一个 flag,这些 flag 都有固定的格式,即 flag + 一个两位十进制数 + 真正的 flag 内容,其中这个两位十进制数代表 真正的 flag 内容 的长度。

例如,在 flag03ctf 中,flag 后的两位十进制数 03 表示 真正的 flag 内容 的长度为 3 个字符,此时 真正的 flag 内容 就是 ctf,所以你需要提交 flag{ctf}

小学妹苦于自己能力不足,于是她拜托你帮她找出文件中的 flag 

输入描述

先输入一行一个正整数 n (1≤n≤10^{5}),表示接下来字符串的长度。

然后输入一个长度为 n 的字符串 s,表示某个 txt 文件中的文本内容。

不保证给定的字符串 s 中只包含一个 flag 串,但你只需要输出你找到的第一个 flag 即可。

保证字符串 s 中不含空格,且第一个 flag 一定合法。

输出描述

输出一行一个字符串 t,表示破译出来的 flag,格式为 flag{真正的 flag 内容}(如样例所示)

样例输入 1

9
flag03ctf

样例输出 1

flag{ctf}

样例输入 2

25
tjjjctfctflag05hellozzuli

样例输出 2

flag{hello}

代码长度限制    16 KB

时间限制            1000 ms

内存限制            256 MB

栈限制                131072 KB

#include <stdio.h>
#include <string.h>
int main()
{int n;scanf("%d\n",&n);char str[n+1];//gcc申请n-4有的答案错误  clang没有// fgets(str,n+1,stdin);//中间必须是n+1 接收n个字符 //fgets可以存入回车符 用strlen不用加\0scanf("%s",str);//PTA申请str[n-4]个也全对   不存入回车符 不用加\0int num=0;for (int i=0;i<n+1;i++){if (str[i]=='f' && str[i+1] == 'l' && str[i+2]=='a' && str[i+3]=='g'){num = (str[i+4]-'0')*10 + str[i+5]-'0';int top=0;for (int j=i+6;j<num+i+6;j++)str[top++] = str[j];break;}}printf("flag{");//,strlen(str)两个都一样申请少空间也会按照n+1打印for (int i=0;i<num;i++)printf("%c",str[i]);printf("}\n");
}

题目2

输入格式:

一个整数 x,用二进制表示。

输出格式:

一个整数, x×43 的二进制表示,注意不能包含前导零。

输入样例:

1

输出样例:

1000000

数据范围:

0≤n≤100,保证无前导零。

 代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{char x[101];int ans;fgets(x,101,stdin);//itoa(x,ans,2);无法识别??可能是Linuxint len=strlen(x),i=0;while(x[i]=='0')i++;if(i==len){printf("0");return 0;}while(i!=len){if (x[i]=='0' || x[i]=='1')//防止输入中有回车符printf("%c",x[i]);i++;}printf("000000");
}

http://www.lryc.cn/news/523381.html

相关文章:

  • 鸿蒙动态路由实现方案
  • Spring-boot3.4最新版整合swagger和Mybatis-plus
  • 基于Java的高校实习管理平台
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
  • 【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)
  • SVGAPlayer error 处理
  • 2024年12月电子学会青少年机器人技术等级考试(二级)实际操作试卷
  • Swift 专题二 语法速查
  • Api网关Zuul
  • 01设计模式(D3_设计模式类型 - D3_行为型模式)
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测
  • 费解的开关
  • 【机器学习】机器学习引领数学难题攻克:迈向未知数学领域的新突破
  • Qt之QDjango-db的简单使用
  • 缓存、数据库双写一致性解决方案
  • SUnet: A multi-organ segmentation network based on multiple attention【医学图像分割】
  • uniapp实现“到这儿去”、拨打电话功能
  • 2025年入职/转行网络安全,该如何规划?网络安全职业规划
  • 【博客之星】2024年度个人成长、强化学习算法领域总结
  • HTML5 Canvas实现的跨年烟花源代码
  • 使用通用预训练范式为 3D 基础模型铺平道路
  • SpringMVC (2)
  • 【Vim Masterclass 笔记16】S07L32 + L33:同步练习09 —— 掌握 Vim 宏操作的六个典型案例(含点评课内容)
  • 爬楼梯问题(Leetcode 第70题)
  • 6.5 正定矩阵
  • verilog笔记1
  • 游戏引擎学习第81天
  • git系列之revert回滚
  • 监控与调试:性能优化的利器 — ShardingSphere
  • LLVM - 编译器前端 - 理解BNF(巴科斯-诺尔范式)