使用C语言原生的字符串函数求解的一道题目总结

1.关于原生函数实现字符串的相关问题

这个事一道OJ题目,也是我今天下午花了很长的这个时间的一个题目,但是其实这个仅仅是我在学习这个C语言的时候可能会做到这样的题目,我没有想到学习了CPP之后,还是需要使用原生的函数实现这个字符串的相关的题目的设计;

下面的这个是我们的CPP实现的字符串的这个相关的要求:

这个CPP实现起来我觉得还是相对而言比较容易的,主要就是使用我们的insert函数确定这个插入的位置即可,size函数确定这个字符串的字符数量,整体上这个输入是没有问题的cion使用起来也是非常的方便;

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string a, b;
    int n;
    cin >> a >> n >> b;
    if (a.size() > 100) {
        cout << 100 << endl;
    } else {
        cout << a.size() << endl;
    }
    a = a.insert(n - 1, b);
    cout << a << endl;
    for (int i = a.size() - 1, j = 1; i >= 0; i--, j++) {
        if (a[i] == 'x') {
            cout << j << endl;
            break;
        }
    }
    return 0;
}

下面的这个是原生的函数的代码实现的方法:主要就是使用C语言里面的和字符串相关的那些函数

cpp 复制代码
#include <stdio.h>
#include <string.h>

int main() {
    char A[10001];
    char B[10001];
    char C[20002];
    int N;

    // 读取字符串A
    fgets(A, sizeof(A), stdin);
    A[strcspn(A, "\n")] = '\0';

    // 读取插入点N
    scanf("%d", &N);
    getchar();

    // 读取字符串B
    fgets(B, sizeof(B), stdin);
    B[strcspn(B, "\n")] = '\0';

    int lenA = strlen(A);
    // 功能1:输出字符串A的长度(如果大于100则输出100)
    if (lenA > 100) {
        printf("100\n");
    }
    else {
        printf("%d\n", lenA);
    }

   //在我们的这个字符串的指定位置拆这个对应的字符
    int i, j;
    for (i = 0; i < N - 1; i++) {
        C[i] = A[i];
    }
    for (j = 0; B[j] != '\0'; j++) {
        C[i++] = B[j];
    }
    for (; A[i - j] != '\0'; i++) {
        C[i] = A[i - j];
    }
    C[i] = '\0';
    printf("%s\n", C);

    // 功能3:查找字符串C中从右到左第一个出现字母x的位置AxxxAAAAA
    int pos = 0;
    int lenC = strlen(C);
    for (i = lenC-1; i >= 0; i--) {
        if (C[i] == 'x') {
            pos = i + 1;
            break;
        }
    }
    printf("%d\n", lenC-pos+1);

    return 0;
}
相关推荐
2601_9677607837 分钟前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
不会就选b1 小时前
算法日常・每日刷题--<贪心>7
数据结构·算法·leetcode
moonrailgun2 小时前
用 Node.js 复刻 Codex Astra 的终端星光
前端·javascript·算法
罗西的思考2 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(1)--- 总体
人工智能·算法·机器学习
lvwangshu3 小时前
图论:LCA、树的直径、树的重心、二分图与 Tarjan 缩点
算法·图论
302wanger4 小时前
干与湿:AI 拿走脑力之后,人剩下什么
算法
计算机编程-吉哥5 小时前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
用户204937554955 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
shehuiyuelaiyuehao5 小时前
算法39,位运算,消失的两个数字
java·数据结构·算法
ZiLing5 小时前
2026 ROS 2 Lyrical 踩坑实录(一):编译与依赖——rosdep、现代 CMake 与 CMake 4.x
算法