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

2025-03-07 学习记录--C/C++-PTA 习题8-5 使用函数实现字符串部分复制

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码(C语言)⭐️

#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */

int main()
{
    char t[MAXN], s[MAXN];
    int m;

    scanf("%d\n", &m);
    ReadString(t);
    strmcpy( t, m, s );
    printf("%s\n", s);

    return 0;
}

/* 你的代码将被嵌在这里 */
#include <string.h> // 引入字符串处理库,用于使用 strlen 和 strncpy 函数

// 函数功能:从字符串 t 的第 m 个字符开始复制到字符串 s 中
void strmcpy(char *t, int m, char *s) {
    int start = m - 1; // 计算起始位置(从0开始)
    // 例如,m = 2 表示从第2个字符开始,start = 1(数组下标从0开始)

    int length = strlen(t) - m + 1; // 计算截取的长度
    // strlen(t) 是字符串 t 的总长度
    // 例如,t = "Hello", m = 2,length = 5 - 2 + 1 = 4

    // 使用 strncpy 从 t 的第 m 个字符开始复制 length 个字符到 s 中
    strncpy(s, t + start, length);
    // t + start 表示从第 m 个字符开始
    // length 是要复制的字符数

    s[length] = '\0'; // 手动添加字符串结束符,确保 s 是一个合法的C字符串
    // strncpy 不会自动添加 '\0',因此需要手动添加
}

在这里插入图片描述

三、知识点 ⭐️

C语言 截取字符串的三种方法,请查看我的另一篇文章。

在这里插入图片描述

相关文章:

  • Unity2017打包出来后的场景一片红
  • 解构OpenManus
  • 黑洞如何阻止光子逃逸
  • Spark Shuffle原理浅解析
  • ubuntu22.04本地部署OpenWebUI
  • 第6章 定时器计数器
  • Android APP 启动流程详解(含冷启动、热启动)
  • 在vue2项目中el-table表格的表头和内容错位问题
  • robot:生而为奴
  • 视觉语言模型新突破!苹果开源AIMv2,多模态融合性能提升10%!
  • nlp进阶
  • 200个前卫街头氛围涂鸦艺术水墨颜料手绘笔迹飞溅PNG免扣迭加纹理素材 VANTABLACK TEXTURES
  • C语言文件操作相关函数详解:fread、fwrite、fseek、ftell、fclose
  • 华为OD机试-最长的密码(Java 2024 E卷 100分)
  • 3.6 登录认证
  • vtkDepthSortPolyData 根据相机视图方向对多边形数据进行排序
  • 2025政府工作报告亮点:发展新质生产力,为现代化产业体系 “赋能提速”!
  • leetcode日记(84)交错字符串
  • 基于STM32的简易出租车计费设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)
  • 计算机组成原理笔记(一)——1.1电子计算机与存储程序控制
  • 建设一个网站需要什么硬件/百度竞价排名
  • 网站建设流程哪家好/seo免费优化
  • 招聘网页制作人员/深圳seo公司排名
  • 建设银行网站 查余额查询/百度浏览器网址链接
  • 网站开发的几种语言/建站官网
  • 网站制作将栏目分类/百度查询最火的关键词