蓝桥 去注释 (字符处理)

简介: 蓝桥 去注释 (字符处理)

题目描述
给你一段C++代码,将其中的注释去除后输出剩余的代码。
注释共有两种形式:

  1. 行注视:以//开头,一直作用到行尾为止。
    例子:
    int n;//n表示数据规模
    int a;
    去注释后:
    int n;
    int a;
    注意:保留行尾换行符
  2. 段注视:以/开头,到//结尾,中间部分都是注释,可以跨行。
    例子:
    int main() {
    /
    我是
    一段
    注释
    /
    }
    去注释后:
    int main() {

}
注意:由于在线评测系统(Online Judge)对网页显示文本作了格式化,一些空行会被删去,导致上面显示的删除后的结果不正确。删除注释后,剩余的代码应该是三行,两行代码之间有一个空 行。这是因为:在段注释结尾符的后面有一个换行符,它不在注释内,需要保留。

样例注意:和之前题目中的解释一样,在int n;之前有一个空行,被在线评测系统删掉,实际程序输出应该有该空行。
输入方法
此题按字符输入,即不断输入下一个字符,直到字符流结束。
char c;
C函数方法:
while ((c = getchar()) != EOF) {
处理..
}
C++流方法:
while ((c = cin.get()) != EOF) {
处理..
}

输入
一段C++程序代码

输出
去掉注释部分后的程序
样例输入
int main() {
/
我是
一段
注释
/
int n;//n表示数据规模
}
样例输出
int main() {

int n;
}

真的没有头绪,果然字符处理能在各种地方做陷阱
学长讲的很简单的思路是把所有字符全部读到一个字符数组里,这样换行符也会读进去,处理换行符的时候直接打出来就好了。
再就是容易忽略的一点是for循环结束后i会++,所以当处理注释时找到注释结束的位置,应该让i等于结束位置下一个的地方再-1

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

char str[400005];
int len=0;
int main(){
   
    freopen("./1.txt", "r", stdin);
    char c;
    while ((c=getchar())!=EOF){
   
        str[len++]=c;
    }
    for (int i=0; i<len; i++){
   
        if (i+1<len && str[i]=='/' && str[i+1]=='/'){
   
            int j;
            for (j=i+2; j<len; j++){
   
                if (str[j]=='\n'){
   
                    break;
                }
            }
            i=j-1;
        }else if (i+1<len && str[i]=='/' && str[i+1]=='*'){
   
            int j;
            for (j=i+2; j<len; j++){
   
                if (j+1<len && str[j]=='*' && str[j+1]=='/'){
   
                    j=j+2;
                    break;
                }
            }
            i=j-1;    //注意因为上层循环有i++,所以这里需要i=j的前一个 
        }else{
   
            printf("%c", str[i]);
        }
    }
    return 0;
}
相关文章
|
API C# 图形学
【推荐100个unity插件之3】切割unity3d物体插件——Ezy-Slice的使用
【推荐100个unity插件之3】切割unity3d物体插件——Ezy-Slice的使用
1239 0
CSDN博客导出工具 Mac By Swift
写这个的目的主要是用于了解Swift语言本身,以及如何与Objc和第三方框架交互需要先使用CSDN账号来登录,可以导出所有的博客文章,添加YAML头信息的时候,会在头信息里面包含文章对应的标签和分类,以及对应的文章类型(原创、转载、翻译) 开发环境 OS X 10.
1091 0
|
10天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3202 9
|
13天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3244 22
|
2天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队版、Coding Plan或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
|
6天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2242 4
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
25天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23594 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
12天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
2728 3

热门文章

最新文章