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

2025-03-06 学习记录--C/C++-PTA 练习8-8 移动字母

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

一、题目描述 ⭐️

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

二、代码(C语言)⭐️

#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
    char s[MAXS];

    GetString(s);
    Shift(s);
    printf("%s\n", s);

    return 0;
}

/* 你的代码将被嵌在这里 */
// 将输入字符串的前3个字符移到最后
void Shift(char s[]) {
    // 定义一个临时字符数组 str,用于存储字符串 s 的前3个字符
    char str[MAXS]; // MAXS 是一个常量,表示数组的最大长度

    // 将 s 中的前3个字符复制到 str 中
    for (int i = 0; i < 3; i++) {
        str[i] = s[i]; // 逐个复制字符
    }
    str[3] = '\0'; // 手动添加字符串结束符,确保 str 是一个合法的C字符串

    // 截取 s 中除去前3个字符后的剩余部分
    int start = 3; // 起始位置为第4个字符(下标从0开始)
    int length = strlen(s) - start; // 计算剩余字符的长度

    // 使用 strncpy 将 s 中从第4个字符开始的剩余部分复制到 s 的开头
    strncpy(s, s + start, length); // s + start 表示从第4个字符开始
    s[length] = '\0'; // 手动添加字符串结束符,确保 s 是一个合法的C字符串

    // 将 str(即前3个字符)拼接到 s 的末尾
    strcat(s, str); // strcat 会将 str 的内容追加到 s 的末尾

    // 最终结果:s 的前3个字符被移到了字符串的末尾
    // 例如,输入 "abcdef",输出 "defabc"
}

在这里插入图片描述

三、知识点 ⭐️

截取字符串的方法,请查看我的另一篇文章。

在这里插入图片描述

相关文章:

  • Android MXPlayer-v1.86.0-wushidi专业版[原团队最后一个版本]
  • 实战案例分享:Android WLAN Hal层移植(MTK+QCA6696)
  • 编程语言介绍:Rust
  • RK3588V2--HYM8563TS RTC 实时时钟适配移植
  • QTday4
  • 谈谈你对 Seata 的理解?
  • 第四章:go 不同进制的区分 for _, r :=range 使用
  • 【入门级篇】保姆级教程:零基础实现DeepSeek本地部署的两种终极方案(附避坑指南)
  • 红果短剧安卓+IOS双端源码,专业短剧开发公司
  • vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案
  • 如火如荼的deepseek,AI初试探!
  • 如何基于LLM及NL2SQL打造对话式智能BI助手
  • 网络与网络安全
  • Springboot-mybatis配置多数据源
  • 加油站小程序实战教程09显示站点信息
  • Z字形字符串转换力扣6
  • 网站总报SSL错误?常见原因及解决方案
  • 开启mysql远程登录
  • 面试过了,总结测试工程师面试题(含答案)
  • 【Git原理与使用二】Git 分支管理
  • 大连模板网站制作服务/网络营销的主要手段和策略
  • 威海+网站建设/怎么快速优化关键词排名
  • 网站建设需要具备哪些知识/aso优化什么意思是
  • 网站 中国最早做网站的/什么样的人适合做策划
  • 免费下载网站建设方案ppt/南宁推广软件
  • 如何做好阿里巴巴企业网站建设/seo的英文全称是什么