使用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;
}
相关推荐
MicroTech20251 分钟前
微算法科技(NASDAQ :MLGO)抗量子区块链技术:筑牢量子时代的数字安全防线
科技·算法·区块链
Ivanqhz3 分钟前
图着色寄存器分配算法(Graph Coloring)
开发语言·javascript·python·算法·蓝桥杯·rust
Elsa️7465 分钟前
洛谷p5718 复习下快速排序和堆排序
数据结构·算法·排序算法
Frostnova丶8 分钟前
LeetCode 3567.子矩阵的最小绝对差
算法·leetcode·矩阵
夏日听雨眠9 分钟前
文件学习9
数据结构·学习·算法
华农DrLai10 分钟前
什么是自动Prompt优化?为什么需要算法来寻找最佳提示词?
人工智能·算法·llm·nlp·prompt·llama
黎阳之光10 分钟前
十五五智赋新程 黎阳之光以AI硬核技术筑造产业数智底座
大数据·人工智能·算法·安全·数字孪生
2401_8914821712 分钟前
C++中的原型模式
开发语言·c++·算法
皙然12 分钟前
深度解析三色标记算法:JVM 并发 GC 的核心底层逻辑
java·jvm·算法
sali-tec14 分钟前
C# 基于OpenCv的视觉工作流-章40-特征找图
图像处理·人工智能·opencv·算法·计算机视觉