使用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;
}
相关推荐
地平线开发者2 小时前
理想汽车智驾方案介绍专题 1 端到端+VLM 方案介绍
算法·自动驾驶
地平线开发者3 小时前
征程 6 | UCP 任务优先级/抢占简介与实操
算法·自动驾驶
杰克尼3 小时前
912. 排序数组
算法
jndingxin4 小时前
OpenCV直线段检测算法类cv::line_descriptor::LSDDetector
人工智能·opencv·算法
秋说4 小时前
【PTA数据结构 | C语言版】阶乘的递归实现
c语言·数据结构·算法
小指纹4 小时前
巧用Bitset!优化dp
数据结构·c++·算法·代理模式·dp·bitset
爱Java&Java爱我6 小时前
数组:从键盘上输入10个数,合法值为1、2或3,不是这三个数则为非法数字,试编辑统计每个整数和非法数字的个数
java·开发语言·算法
是店小二呀7 小时前
【算法-BFS 解决最短路问题】探索BFS在图论中的应用:最短路径问题的高效解法
算法·图论·宽度优先
qq_513970447 小时前
力扣 hot100 Day46
算法·leetcode
满分观察网友z8 小时前
递归与迭代的优雅之舞:我在评论区功能中悟出的“树”之道(104. 二叉树的最大深度)
后端·算法