程序员面试宝典部分第四版针对字符数组处理的部分程序

本文展示了C++中处理字符串的一些常见操作,包括查找重复字符串、模拟strstr函数、字符串反转、字符串格式转换和判断是否为翻转字符串。通过这些实例,可以帮助程序员更好地理解和掌握字符串处理技巧。
摘要由CSDN通过智能技术生成
#include <unistd.h>
#include <sys/types.h>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <string.h>

using namespace std;
/**********************************
*程序员面试宝典上的关于字符串处理的例程
*page241-243
************************************/

///可以用于查找重复出现的最长的字符串
#if 0
int main()
{
    string str("yyabcdabjcabceg");
    string tep;
    cout<<"请输入字符串"<<endl;

    int len = str.length();
    printf("len=%d\n",len);

    for(int i=str.length()-1; i>1; i--){
        for(int j=0; j<str.length();j++){
            if((j+i)<=str.length()){
                size_t t=0;
                size_t num=0;
                tep=str.substr(j,i);
                t=str.find(tep);
                num=str.rfind(tep);
                cout<<"tep= "<<i<<" "<<j<<" "<<tep<<" "<<t<<" "<<num<<endl;
                if(t!=num){
                    cout<<tep<<" "<<t+1<<endl;
                    return 0;
                }
            }
        }
    }

    return 0;
}
#endif
///模拟字符串处理函数strstr的处理过程,strstr函数是返回主串中与子串重合的部分及其之后的部分
#if 0
const char* my_strstr(const char* stringsrc,const char* strCharSet)
{
    for(int i=0;stringsrc[i]!='\0';i++){
        int j=0;
        int tmp=i;
        if(strCharSet[j]==stringsrc[i]){
            while(strCharSet[j++]==stringsrc[i++]){
                if(strCharSet[j]=='\0'){
                    return &stringsrc[i-j];
                }
            }
        }
         i=tmp;
    }
    return NULL;
}
int main()
{
    char *stringsrc="12345554555123";
    cout<<stringsrc<<endl;
    char strCharSet[10]=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值