字符串部分操作的函数实现

本文介绍了一种使用C++实现的字符串操作方法,包括查找子串、字符串翻转、判断回文、字符串比较及获取字符串长度等功能。这些实用的字符串处理技巧对于C++程序员来说非常有价值。
#include <iostream>
using namespace std;

/*
求sub字符串在src中匹配的位置,匹配失败返回-1
*/
int findStr(const char*src,const char*sub)
{
	if(src==NULL || sub==NULL)
		return -1;
	const char * srcp;
	const char * subp;
	int index=-1;
	while(*src!=0)
	{
		index++;
		srcp=src++;
		subp=sub;
		while(*srcp++==*subp++)
		{
			if(*subp==0)
				return index;
		}
	}
	return -1;
}
/*
字符串翻转
*/
void revStr(char* str)
{
	if(str==NULL)
		return;
	int length=strlen(str);
	int midIndex=(length%2==0)?(length/2):(length/2+1);
	for(int i=0;i<midIndex;++i)
	{
		char temp=str[i];
		str[i]=str[length-i-1];
		str[length-i-1]=temp;
	}
}
/*
判断是否是回文
*/
bool isHuiWen(const char *str)
{
	int length=strlen(str);
	int midIndex=length/2;
	bool huiWen=true;
	for(int i=0;i<midIndex;i++)
	{
		if(str[i]!=str[length-i-1])
		{
			huiWen=false;
			break;
		}
	}
	return huiWen;
}
/*
字符串的比较,前者大返回1,后者大返回-1,相等返回0
*/
int myStrCmp(const char* src,const char * dst)
{
	int ret=0;
	while( !(ret=*src-*dst) && *dst)
	{
		src++;
		dst++;
	}
	if(ret>0)
		ret=1;
	else if(ret<0)
		ret=-1;
	return ret;
}
/*
获取字符串长度,这种方法在求长字符串时较快速
*/
int getStrLen(const char *str)
{
	const char *temp=str;
	while(*str++!=0);
	return str-temp-1;
}
int main()
{
	cout<<findStr("chen","he")<<endl;

	char str1[]="hello";
	revStr(str1);
	cout<<str1<<endl;

	cout<<isHuiWen("hello")<<endl;
	cout<<isHuiWen("chehc")<<endl;

	cout<<myStrCmp("chen","chen")<<endl;
	cout<<myStrCmp("che","chen")<<endl;
	cout<<myStrCmp("chen","che")<<endl;

	cout<<getStrLen("chen")<<endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值