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

2025-03-09 学习记录--C/C++-PTA 练习11-4 字符定位(最后一次找到的字符)

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

一、题目描述 ⭐️

在这里插入图片描述

裁判测试程序样例:

#include <stdio.h> 
char *match(char *s, char ch); 

int main(void )
{
    char ch, str[80], *p = NULL;

    scanf("%s", str);
    getchar();                 /* 跳过输入字符串和输入字符之间的分隔符 */
    ch = getchar();          /* 输入一个字符 */
    p = match(str, ch);     /* 调用函数match() */
    if( p != NULL ){        /* 找到字符ch */
        printf("%s\n", p);
    }else{ 
        printf("Not Found.\n");
    }

    return 0;
}

/* 请在这里填写答案 */

输入样例1

program
r

输出样例1

ram

输入样例2

program
x

输出样例2

Not Found.

二、代码(C语言)⭐️

#include <string.h>

// 函数功能:在字符串 s 中从后往前查找字符 ch,如果找到,则从该字符开始截取到字符串末尾,并返回截取后的字符串;如果未找到,返回 NULL。
char *match(char *s, char ch) {
    int len = strlen(s); // 计算字符串 s 的长度
    int start = 0;       // 初始化起始位置为 0
    int cutLen = 0;      // 初始化截取长度为 0

    // 从字符串末尾开始向前遍历
    for (int i = len - 1; i >= 0; i--) {
        // 如果当前字符等于目标字符 ch
        if (s[i] == ch) {
            start = i;              // 记录目标字符的位置
            cutLen = len - i;        // 计算从目标字符到字符串末尾的长度
            // printf("%d %d %d %d\n", len, i, start, cutLen); // 调试信息,打印相关变量值

            // 将目标字符及其后面的部分复制到字符串 s 的开头
            strncpy(s, s + i, cutLen);
            s[cutLen] = '\0';        // 在复制后的字符串末尾添加 null 终止符
            return s;                // 返回截取后的字符串
        }
    }

    // 如果未找到目标字符 ch,返回 NULL
    return NULL;
}

在这里插入图片描述

三、知识点 ⭐️

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

在这里插入图片描述


http://www.kler.cn/a/578599.html

相关文章:

  • 音视频入门基础:RTP专题(16)——RTP封装音频时,音频的有效载荷结构
  • 同为科技智能PDU在数据中心场景的应用与解决方案
  • 垂直领域大模型优化:从“通用”到“专精”——打造医疗、金融、法律领域的AI专家
  • 【RAG】文本分割的粒度
  • es-使用easy-es时如何指定索引库
  • 【Java篇】数据类型与变量:窥见程序的天地万象
  • 设计模式 一、软件设计原则
  • VSCode输入npm xxx,跳转到选择应用
  • 云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
  • 计算机视觉图像点运算【灰度直方图均衡化图形界面实操理解 +开源代码】
  • 如何关闭 MySQL 的 binlog(Binary Log)日志
  • MMFewShot
  • 【Python】为什么要写__init__.py
  • QT多线程
  • uploadlabs通关思路
  • 排列组合定义及基本公式
  • 深度学习|自监督学习新星:DINO 解析与实践指南
  • 一致性哈希函数处理负载均衡(简单实现,勿喷)
  • Python|基于DeepSeek大模型,自动生成语料数据(10)
  • 【技术方案设计】H5埋点方案设计以及实现(入门版)