#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]=
程序员面试宝典部分第四版针对字符数组处理的部分程序
最新推荐文章于 2024-05-04 19:35:55 发布
本文展示了C++中处理字符串的一些常见操作,包括查找重复字符串、模拟strstr函数、字符串反转、字符串格式转换和判断是否为翻转字符串。通过这些实例,可以帮助程序员更好地理解和掌握字符串处理技巧。
摘要由CSDN通过智能技术生成