使用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;
}
相关推荐
凡人叶枫几秒前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
菜鸟‍1 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展
退休倒计时3 小时前
【每日一题】LeetCode 142. 环形链表 II TypeScript
算法·leetcode·链表·typescript
popcorn_min3 小时前
Digits 手写数字识别:随机森林多分类 + 像素级特征热力图
算法·随机森林·分类
liulilittle4 小时前
拥塞控制:排水终止的两种决策:OR 与 AND
网络·tcp/ip·计算机网络·算法·信息与通信·tcp·通信
weixin_307779134 小时前
从脚本执行到智能体协作:AI辅助测试能力的范式重构
运维·开发语言·人工智能·算法·测试用例
量化君也4 小时前
从回测到全自动实盘交易,全天候策略需要经历哪些改造?
大数据·人工智能·python·算法·金融
fox_lht5 小时前
第十五章 函数式语言:迭代器和闭包
开发语言·后端·学习·算法·rust
zhengzhouliuhaha5 小时前
智能医疗设备控费系统:以全院一体化管控,筑牢医疗资源“安全阀”
大数据·数据结构·人工智能·算法·安全·机器学习·软件需求
June`5 小时前
CUDA程序效率如何计算以及工具如何使用
算法·cuda