删除注释(C语言)

从键盘上读入一行字符(约定:字符数≤127字节),判断其中的注释是否合法,不合法则报错,合法时则删除注释后再输出。合法注释是指“/*”标记注释开始、“*/”标记注释结束,通常表现为/* ……*/。
  注意事项:
(1)只考虑行内最多只包含一个注释的情况。
(2)不合法的注释情况有很多种,例如 ……*/缺注释开始标记、/  * ……*/缺注释开始标记、/* ……缺注释结束标记、/* ……*  /缺结束标记。
(3)编程可用素材:printf("input a string:")...、printf("Output:\nThe result is :")...、printf("Output:\ncomment is error\n")...。
  程序的运行效果应类似地如图1、图2、图3和图4所示,图1中的int main(void){char ch;/*ding yi*/ int i}、图2中的int main(void){char ch;ding yi*/ int i}、图3中的int main(void){char ch;/*ding yi* / int i}和图4中的int main(void){char ch; int i}是从键盘输入的内容。

程序运行效果示例:

#include <string.h>
#include <stdio.h>
int test( char arr[],int num)  test函数用途找到"*/"的位置 如果没有就错误
{
    int i = 0;
    int j = 0;
    int len = strlen(arr);
    for( i = num + 2  ; arr[i] != '\0';i++)
    {
        if( arr[i] == '*')
        {
            if( arr[i+1] == '/')
            {
                j = i + 2;
                return j;
            }
            else
            {
                return 0;
            }
        }
    }
    return 0;
}
int main()
{
    int len = 0;
    int i = 0;
    int k = 0;
    int j = 0;
    int z = 0;
    char arr[128] = { '\0'};
    printf("input a string:");
    gets(arr);
    len = strlen(arr);
    printf("Output:\n");
    
    for( i = 0 ; i < len ;i++)
    {
        if( arr[i] == '/')  首先判断'/'
        {
            if( arr[i+1] == '*')  //注释的第二个条件
            {
                z = i;
                if( (j = test(arr,z))!=0)
                {
                    for(  ; j < len ;j++,z++)
                    {
                        arr[z] = arr[j];
                    }
                    for( ; z < len ;z++)
                    {
                        arr[z] = '\0';
                    }
                    printf("The result is :");
                    printf("%s\n",arr);
                    return 0;
                }
                else
                {
                 printf("comment is error\n");
                 return 0;
                }
                
            }
        
            else
            {
                printf("comment is error\n");
                return 0;
            }
        }
        else
        {
            if( arr[i] == '*')
            {
                if( arr[i+1] == '/')
                {
                    printf("comment is error\n");
                    return 0;
                }
            }
        }
    }
    printf("The result is :");
    printf("%s\n",arr);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/294818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

四种“栈溢出检测方法”实现分析(2种纯软件、一种纯硬件、一种软硬件结合)

1、两种纯软件的栈溢出检测方法 参考博客&#xff1a;《freeRTOS的栈溢出检测机制》&#xff1b; 2、纯硬件&#xff1a;使用栈限制寄存器 2.1、工作逻辑分析 前提条件&#xff1a;使用满减栈硬件上提供栈限制寄存器&#xff08;用SP_limit表示&#xff09;&#xff0c;可以…

vue封装基础input组件(添加防抖功能)

先看一下效果&#xff1a; // 调用页面 <template><div><!-- v-model&#xff1a;伪双向绑定 --><my-input v-model"inputVal" label"姓名" type"textarea" /></div> </template><script> import…

Halcon根据特征值选择区域select_shape

Halcon根据特征值选择区域 关于提取图像的特征&#xff0c;比较常用的一个算子是select_shape算子&#xff0c;它能高效地根据特征提取出符合条件的区域。该算子的原型如下&#xff1a; select_shape (Regions : SelectedRegions : Features, Operation, Min, Max :)参数1和参…

Python 面向对象之继承和组合

Python 面向对象之继承和组合 【一】继承 【1】概念 继承是面向对象的三大特征之一继承允许一个类继承另一个类的属性和方法继承可以使代码重用&#xff0c;解决类与类之间代码重复的问题 【2】代码解释 不使用继承&#xff0c;创建豌豆射手类和豌豆的双发射手类 # 豌豆射…

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic 原因 golang 服务出现了 panic&#xff0c;根据 panic 打印出的堆栈找到了问题代码&#xff0c;看上去原因是&#xff1a;json 序列化时&#xff0c;遇到了无法序列化的内容 [panic]: json: unsupported …

项目优化的方法

持续更新中… 目录 性能防抖、节流防抖(debounce)节流(throttle)防抖节流的区别&#xff1a; 图片/视频/音频压缩减少请求发送次数减少重绘与回流经常要切换消失与出现状态的节点用v-show而不用v-if按需引入路由懒加载懒加载图片懒加载列表懒加载 精灵/雪碧图Webpack优化前端性…

使用Go语言编写高效的HTTP服务器

随着互联网的快速发展&#xff0c;HTTP服务器在Web开发中扮演着越来越重要的角色。而Go语言作为一种高效、并发性强的编程语言&#xff0c;为编写高性能的HTTP服务器提供了强大的支持。本文将探讨如何使用Go语言编写高效的HTTP服务器。 首先&#xff0c;我们需要了解Go语言的H…

某大型电商APP sign头部签名逆向分析

APP版本 唯品会 7.45Java层抓包分析 打开抓包工具 charles进行分析&#xff0c;可以发现对于API采集需要突破当前这个参数&#xff0c;否则不返回信息 jadx静态分析 jadx静态分析&#xff0c;打开app搜索关键词api_sign&#xff0c;可以发现有参数位置 跟进去上边str赋值方…

三剑客前端教程

前端教程 结构层&#xff08;html&#xff09;表现层&#xff08;css&#xff09;行为层&#xff08;javascript&#xff09; HTML 超文本标记语言&#xff09; HTML&#xff08;超文本标记语言——HyperText Markup Language&#xff09;是构成 Web 世界的一砖一瓦。它定义…

LLM(九)| 使用LlamaIndex本地运行Mixtral 8x7大模型

欧洲人工智能巨头Mistral AI最近开源Mixtral 8x7b大模型&#xff0c;是一个“专家混合”模型&#xff0c;由八个70亿参数的模型组成。Mistral AI在一篇博客文章&#xff08;https://mistral.ai/news/mixtral-of-experts/&#xff09;介绍了Mixtral 8x7b&#xff0c;在许多基准上…

一致性算法Paxos

Paxos Paxos 算法解决的问题是一个分布式系统如何就某个值&#xff08;决议&#xff09;达成一致。一个典型的场景是&#xff0c;在一个分布式数据库系统中&#xff0c;如果各节点的初始状态一致&#xff0c;每个节点执行相同的操作序列&#xff0c;那么他们最后能得到一个一致…

如何实现任意文档的离线翻译且源文档格式不变?支持离线全自动翻译,无需改动页面、无语言配置文件、无API Key、对SEO友好!(附源码)

如何实现任意文档的离线翻译且源文档格式不变?支持离线全自动翻译,无需改动页面、无语言配置文件、无API Key、对SEO友好!(免费使用附所有源码) 在工作和生活中,是否遇到过这样的场景: 1)有些文档很长且不是自己擅长的语言,阅读起来很费力,需要把文档进行翻译之后再…

效果图渲染角度哪什么小技巧?

在创建效果图渲染时&#xff0c;正确设置相机角度对于表现设计的视觉效果至关重要。好的效果图通常能够增强设计图张力&#xff0c;通过效果图也能更好的看到真实物体的成果&#xff0c;以下是一些效果图渲染角度技巧&#xff0c;可以帮助你提高渲染的质量和表现力&#xff0c;…

软件测试|一篇文章带你深入理解SQL约束

深入理解SQL约束&#xff1a;保障数据完整性和一致性的重要工具 SQL约束是在关系型数据库中用于保障数据完整性和一致性的重要工具。本文将深入探讨SQL约束的概念、类型以及应用&#xff0c;以帮助读者更好地理解和使用SQL约束来确保数据库中的数据质量。 SQL约束 约束&…

Maven之依赖的传递

问题导入 1. 依赖传递 A依赖B&#xff0c;B依赖C&#xff0c;A是否依赖于C呢&#xff1f;–A依赖于C 依赖具有传递性 路径优先&#xff1a;当依赖中出现相同的的资源时&#xff0c;层级越深&#xff0c;优先级越低&#xff0c;层级越浅&#xff0c;优先级越高 声明优先&…

鸿蒙会不会像10几年前安卓一样,红极一时

如今&#xff0c;鸿蒙与安卓彻底切割时间似乎越来越近&#xff0c;一批嗅觉灵敏的互联网厂商已经完成或开始启动开发鸿蒙原生App。随着头部App厂商启动鸿蒙&#xff08;HarmonyOS&#xff09;原生应用开发&#xff0c;鸿蒙开发人才变得紧缺。专家预测&#xff0c;鸿蒙开发的人才…

通过聚道云软件连接器实现金蝶软件与客如云软件的无缝对接

客户介绍 某知名冷饮连锁品牌是国内一家拥有数千家门店的知名品牌&#xff0c;作为一家专注于冷饮和甜品的企业&#xff0c;我们致力于提供高品质、健康美味的食品&#xff0c;为消费者带来冰凉的甜蜜与畅快的口感。 我们始终坚持选用优质原料&#xff0c;严格把控生产流程&a…

数据库基础知识1

关系模型的程序员不需熟悉数据库的存取路径 在3层模式结构中,___I___是数据库的核心和关键,___Ⅱ___通常是模式的子集,数据库模式的描述提供给用户,____Ⅲ__的描述存储在硬盘上。Ⅰ.模式Ⅱ. 外模式Ⅲ. 内模式 数据库中,数据的物理独立性是指用户的应用程序与存储在磁盘上数据库…

数据库——SQL注入攻击

【实验内容及要求】 一、内容&#xff1a;掌握SQL注入攻击的原理&#xff0c;掌握基本SQL注入攻击的方法&#xff0c;掌握防SQL注入攻击的基本措施。 二、要求&#xff1a; 1. DVWA环境配置 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用来进行安全…

使用ffmpeg+flv.js + websokect播放rtsp格式视频流

对于rtsp的视频流网上有很多种的解决方案&#xff0c;但是大的趋势还是利用ffmpeg的工具进行rtsp的视频解析进行一个推流&#xff0c;我最终选择bilibili开源的flv.js&#xff0c;代码十分的简单全部都在底层封装好了。实现的方式也比较容易理解&#xff0c;ffmpeg进行rtsp的视…