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

网站首次备案/安卓优化大师旧版本

网站首次备案,安卓优化大师旧版本,wordpress wpgetattachmentimagesrc,广州制作软件【PTA刷题】 求子串(代码详解) 题目 请编写函数,求子串。 函数原型 char* StrMid(char *dst, const char *src, int idx, int len);说明:函数取源串 src 下标 idx 处开始的 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len…

【PTA刷题】 求子串(代码+详解)

题目

请编写函数,求子串。

函数原型

char* StrMid(char *dst, const char *src, int idx, int len);

说明:函数取源串 src 下标 idx 处开始的 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len 值不正确,则自动修正。若 idx 值不正确,则目的串为空串。

裁判程序

#include <stdio.h>char* StrMid(char *dst, const char *src, int idx, int len);int main()
{char a[128], b[128];int s, n;gets(a);scanf("%d%d", &s, &n);StrMid(b, a, s, n);puts(b);return 0;
}/* 你提交的代码将被嵌在这里 */

输入样例1

abcd
1 2

输出样例1

bc

输入样例2

abcd
1 5

注:5 不正确,按 3 处理。

输出样例2

bcd

输入样例3

abcd
-5 2

输出样例3


注:输出为空串。

代码

char* StrMid(char *dst, const char *src, int idx, int len) {// 检查参数是否合法if (idx < 0) {dst[0] = '\0'; // 如果 idx 不正确,将目的串设为空串} else {int src_len = strlen(src);if (idx >= src_len || len <= 0) {dst[0] = '\0'; // 如果 idx 超出源串长度或 len 不正确,将目的串设为空串} else {// 修正 len,确保不超出源串的长度if (len > src_len - idx) {len = src_len - idx;}// 拷贝子串到目的串strncpy(dst, src + idx, len);dst[len] = '\0'; // 确保目的串以 null 结尾}}

解析

这是一个关于字符串操作的题目,我会逐步解释这个函数的实现细节。这个题目是一个C语言函数,其目的是从源字符串中复制一部分到目标字符串中。

首先,让我们看一下这个函数的原型:

char* StrMid(char *dst, const char *src, int idx, int len);

这个函数接受四个参数:

  1. dst:目标字符串,函数将复制的子串存储在这里。
  2. src:源字符串,函数将从这里复制子串。
  3. idx:开始复制的位置。
  4. len:要复制的字符数。

现在,让我们逐步来看这个函数的实现。

首先,函数会检查参数是否合法。如果 idx 小于0,说明开始位置不正确,这时将目标串设为空串。

if (idx < 0) {dst[0] = '\0'; // 如果 idx 不正确,将目的串设为空串
}

然后,函数会计算源串的长度,并检查 idx 是否超过了源串的长度或者 len 是否不合法。如果是的话,同样将目标串设为空串。

else {int src_len = strlen(src);if (idx >= src_len || len <= 0) {dst[0] = '\0'; // 如果 idx 超出源串长度或 len 不正确,将目的串设为空串}

接下来,如果参数都合法,函数会修正 len 的值,确保不超出源串的长度。

else {if (len > src_len - idx) {len = src_len - idx;}

最后,函数使用 strncpy 函数从源串复制子串到目标串,并确保目标串以 null 结尾。

// 拷贝子串到目的串
strncpy(dst, src + idx, len);
dst[len] = '\0'; // 确保目的串以 null 结尾

最终,函数返回目标串的指针。

return dst;

这个函数的设计考虑了很多情况,确保了参数的合法性,并且在复制过程中进行了必要的修正。如果有任何问题,请随时提问。

在这里插入图片描述

相关文章:

【PTA刷题】 求子串(代码+详解)

【PTA刷题】 求子串(代码详解) 题目 请编写函数&#xff0c;求子串。 函数原型 char* StrMid(char *dst, const char *src, int idx, int len);说明&#xff1a;函数取源串 src 下标 idx 处开始的 len 个字符&#xff0c;保存到目的串 dst 中&#xff0c;函数值为 dst。若 len…...

初识Dockerfile

Dockerfile&#xff1a;创建镜像&#xff0c;创建自定义的镜像 包括配置文件&#xff0c;挂载点&#xff0c;对外暴露的端口&#xff0c;设置环境变量 Docker的创建镜像方式&#xff1a; 1.基于已经镜像进行创建 根据官方号已提供的镜像源&#xff0c;创建镜像&#xff0c;然…...

Python入门第2篇(pip、字符串、方法、json、io操作)

目录 pip包管理器 字符串 方法 json 文件操作 pip包管理器 包管理器类似.NET下的nuget&#xff0c;主要用于管理引用依赖项。 安装Python的时候&#xff0c;已经默认安装了pip包管理器&#xff0c;因此无需单独安装 cmd&#xff0c;输入&#xff1a;pip --version 显示…...

IntelliJ IDEA 智能(AI)编码工具插件

文章目录 通义灵码-阿里CodeGeeX-清华大学智谱AIBitoAmazon CodeWhisperer-亚马逊GitHub Copilot - 买不起CodeiumAIXcoder 仅仅自动生成单元测试功能 TestMe插件&#xff08;免费&#xff09;仅仅是模板填充&#xff0c;不智能。 Squaretest插件&#xff08;收费&#xff09;…...

Java编程中通用的正则表达式(二)

正则表达式&#xff0c;又称正则式、规则表达式、正规表达式、正则模式或简称正则&#xff0c;是一种用来匹配字符串的工具。它是一种字符串模式的表示方法&#xff0c;可以用来检索、替换和验证文本。正则表达式是一个字符串&#xff0c;它描述了一些字符的组合&#xff0c;这…...

[GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练

前言 OpenAI的创始人之一,大神Andrej Karpthy刚在微软Build 2023开发者大会上做了专题演讲:State of GPT(GPT的现状)。 他详细介绍了如何从GPT基础模型一直训练出ChatGPT这样的助手模型(assistant model)。作者不曾在其他公开视频里看过类似的内容,这或许是OpenAI官方…...

接口测试-Jmeter使用

一、线程组 1.1 作用 线程组就是控制Jmeter用于执行测试的一组用户 1.2 位置 右键点击‘测试计划’-->添加-->线程(用户)-->线程组 1.3 特点 模拟多人操作线程组可以添加多个&#xff0c;多个线程组可以并行或者串行取样器(请求)和逻辑控制器必须依赖线程组才能…...

十大排序(含java代码)

一、冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调&#xff0c;比较是相邻的两个元素比较&#xff0c;交换也发生在这两个元素之间。&#xff08;类似于气泡上浮过程&#xff09; 动图演示 代码实现 int a[]{2,5,3,7,4,8};for (int i 0; i < a.length; i) {f…...

js基础:简介、变量与数据类型、流程循环控制语句、数组及其api

JS基础&#xff1a;简介、变量与数据类型、流程循环控制语句、数组及其api 一、简介 1、js概述 tip&#xff1a;JavaScript是什么&#xff1f; 有什么作用&#xff1f; JavaScript&#xff08;简称JS&#xff09;是一种轻量级的、解释性的编程语言&#xff0c;主要用于在网页…...

kubeadm搭建单master多node的k8s集群--小白文,图文教程

参考文献 K8S基础知识与集群搭建 kubeadm搭建单master多node的k8s集群—主要参考这个博客&#xff0c;但是有坑&#xff0c;故贴出我自己的过程&#xff0c;坑会少很多 注意&#xff1a; 集群配置是&#xff1a;一台master&#xff1a;zabbixagent-k8smaster&#xff0c;两台…...

CSS层叠样式表一

1&#xff0c;CSS简介 1.1 CSS-网页的美容师 CSS的主要使用场景就是美化网页&#xff0c;布局页面的 CSS也是一种标记语言 CSS主要用于设置HTML页面中的文本内容&#xff08;字体&#xff0c;大小&#xff0c;对齐方式等&#xff09;、图片的外形&#xff08;宽高、边框样式…...

【等保】安徽省等保测评机构名单看这里!

随着互联网技术的飞速发展&#xff0c;网络安全已成为国家安全、社会稳定的重要保障&#xff0c;因此我们严格贯彻落实等保政策。等保测评机构在等保制度执行过程中发挥着重要的作用。现在我们就来看看安徽省等保测评机构有哪些&#xff1f; 【等保】安徽省等保测评机构名单看…...

学习IO的第八天

作业&#xff1a;使用信号灯循环输出ABC sem.c #include <head.h>union semun {int val; /* Value for SETVAL */struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */unsigned short *array; /* Array for GETALL, SETALL */struct seminf…...

【clickhouse】ck远程访问另一个ck

代码实现 CREATE TABLE tmp.tbsas remote( host, database_name, table_name, user, password );就相当于从ck1直接请求ck2 参考文档 https://github.com/ClickHouse/ClickHouse/issues/15295 https://clickhouse.com/docs/zh/sql-reference/table-functions/remote...

Django的logging-日志模块的简单使用方法

扩展阅读&#xff1a; Python-Django的“日志功能-日志模块(logging模块)-日志输出”的功能详解 现在有下面的Python代码&#xff1a; # -*- coding: utf-8 -*-def log_out_test(content_out):print(content_out)content1 "i love you01" log_out_test(content1)现…...

​argparse --- 命令行选项、参数和子命令解析器​

3.2 新版功能. 源代码&#xff1a; Lib/argparse.py 教程 此页面包含该 API 的参考信息。有关 Python 命令行解析更细致的介绍&#xff0c;请参阅 argparse 教程。 argparse 模块可以让人轻松编写用户友好的命令行接口。 程序定义它需要哪些参数&#xff0c;argparse 将会知…...

洛谷 P8802 [蓝桥杯 2022 国 B] 出差

文章目录 [蓝桥杯 2022 国 B] 出差题目链接题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路解析CODE [蓝桥杯 2022 国 B] 出差 题目链接 https://www.luogu.com.cn/problem/P8802 题目描述 A \mathrm{A} A 国有 N N N 个城市&#xff0c;编号为 1 … N …...

fastadmin配置教程

第一. 打开小皮&#xff0c;创建一个网站 第二. 打开fastadmin官网&#xff0c;下载压缩包 下载好后是这个样子 打开网站的根目录&#xff0c;将这个压缩包压缩到你网站的根目录里 第三&#xff0c;小皮里面创建一个数据库 第四&#xff0c;然后打开网站&#xff0c;输入创…...

golang游戏服务器 - tgf系列课程01

TGF框架的特点和功能 课程介绍了TGF框架的特点和功能在第一节课程中我们并不会介绍框架的使用。我们希望在这节课程中,能让你了解到tgf是一个什么样的框架 概要 本节课程介绍了TGF框架的特点和功能。TGF是一个开箱即用的服务器框架, 适合中小型团队和独立开发者进行游戏开发。…...

react dom的diff理解及性能优化

diff的三大过程 当某个值变化时&#xff0c;他从根组件寻找 (key,state,props,context) 当父组件稳定时&#xff0c;react会跳过子组件的props的对比 只有当当前组件值改变时&#xff0c;从他开始&#xff0c;所有的子孙节点都会对比props props是全等比较&#xff0c;所以&am…...

【acwing】92. 递归实现指数型枚举

穿越隧道 递归枚举、位运算 方法① 从1到n&#xff0c;顺序访问每位数&#xff0c;是否选择&#xff0c;每位数有两种状态&#xff0c;选1或不选0. AC代码如下&#xff1a; #include <iostream> using namespace std;const int N 100; // bool st[N]; int n;void dfs(in…...

【面试】Java最新面试题资深开发-分布式系统中的CAP理论

问题六&#xff1a;分布式系统中的CAP理论 分布式系统的设计涉及到CAP理论&#xff0c;即一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;、分区容忍性&#xff08;Partition Tolerance&#xff09;。请解释一下CAP理论是什么&#x…...

Windows下使用CMD修改本地IP

在网络适配器界面查看当前网线连接的哪个网口&#xff0c;我当前连的是 以太网 这个名字的&#xff1a; 在windows下使用管理员权限打开CMD命令工具&#xff0c;输入如下命令(如我想本地ip改成192.168.2.4)&#xff1a; netsh interface ip set address "以太网" st…...

20231211-DISM++安装win10-22h2-oct

20231211-DISM安装win10-22h2-oct 一、软件环境 zh-cn_windows_10_consumer_editions_version_22h2_updated_oct_2023_x64_dvd_eb811ccc.isowepe x64 v2.3标签&#xff1a;win10 22h2 wepe dism分栏&#xff1a;WINDOWS 二、硬件环境 8G或以上的有PE功能的启动U盘一个台式机…...

前端知识笔记(五)———前端密钥怎么存储,才最安全?

前端密钥存储安全是非常重要的&#xff0c;具体原因如下&#xff1a; 保护敏感数据&#xff1a;密钥用于保护敏感数据的安全性。如果密钥泄露&#xff0c;攻击者可能能够访问和篡改敏感数据&#xff0c;导致数据泄露、数据被篡改或系统被入侵。 防止恶意使用&#xff1a;在前端…...

【智能家居】智能家居项目

智能家居项目目录 项目目录结构 完整而典型的项目目录结构 CMake模板 CMake编译运行 README.md 项目说明文档 智能家居项目目录 【智能家居】面向对象编程OOP和设计模式(工厂模式) 【智能家居】一、工厂模式实现继电器灯控制 【智能家居】二、添加火灾检测模块&#xff08;…...

在AWS Lambda上部署标准FFmpeg工具——Docker方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 启动EC23 编写调用FFmpeg的代码4 生成docker镜像4.1 安装和启动Docker服务4.2 编写Dockerfile脚本4.3 生成镜像 5 推送镜像5.1 创建存储库5.2 给EC2赋予角色5.2.1 创建策略5.2.2…...

C#网络应用程序(Web页面浏览器、局域网聊天程序)

目录 一、创建Web页面浏览器 1.示例源码 2.生成效果 二、局域网聊天程序 1.类 2.服务器端 3.客户端 一、创建Web页面浏览器 TextBox 控件用来输入要浏览的网页地址&#xff0c;Button控件用来执行浏览网页操作&#xff0c; WebBrowser控件用来显示要浏览的网页。这个控…...

MacOS 14挂载NTFS 硬盘的最佳方式(免费)

categories: [Tips] tags: MacOS 写在前面 众所周知, MacOS 上面插入 NTFS磁盘格式的话, 磁盘可以向 Mac 写入数据, 但是 Mac 上的数据不能写入磁盘(这是因为 MacOS 的内核扩展禁用了 NTFS 这个格式, 可能是出于安全性或其他原因) 之前一直是使用某 pojie 的 NTFS 工具的, 虽然…...

SpringAOP专栏二《原理篇》

上一篇SpringAOP专栏一《使用教程篇》-CSDN博客介绍了SpringAop如何使用&#xff0c;这一篇文章就会介绍Spring AOP 的底层实现原理&#xff0c;并通过源代码解析来详细阐述其实现过程。 前言 Spring AOP 的实现原理是基于动态代理和字节码操作的。不了解动态代理和字节码操作…...