• *** 自写代码:反转字符串,但保持指定子串不变


    empty() 堆栈为空则返回真

    pop() 移除栈顶元素

    push() 在栈顶增加元素

    size() 返回栈中元素数目

    top() 返回栈顶元素

    #include <iostream>
    #include <string.h>
    using namespace std;
    char * strRev (char * src, unsigned int count)
    {
        if (src == NULL) return NULL;
        char * start = src;
        char * end = src + count -1;
        while (start < end)
        {
            *start ^= *end;
            *end ^= *start;
            *start ^= *end; 
            ++start;
            --end;
        }
        return src;
    }
    char * revStrKeepSub (char * src, char * sub)
    {
        if ((src==NULL) || (sub==NULL)) return NULL;
        unsigned int aLen = strlen(src);
        unsigned int bLen = strlen(sub);
        strRev(src, aLen);
        strRev(sub, bLen);
        strRev(strstr(src, sub), bLen);
        strRev(sub, bLen);    
        return src;
    }
    int main()
    {
        char a[] = "abcdefg";
        char b[] = "cdef";
        cout << revStrKeepSub (a, b) << endl;
        return 0;
    }
  • 相关阅读:
    gcc/g++命令参数笔记
    周总结
    帆软FineBI试用
    C++输入流
    tt
    linux6 安装oracle11g
    linux下修改/dev/shm tmpfs文件系统大小
    centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    Linux Network配置
    安装KornShell(KSH)
  • 原文地址:https://www.cnblogs.com/superrunner/p/10165225.html
Copyright © 2020-2023  润新知