字符串转置和字符串匹配

字符串的反转和字符串匹配
VC6.0调试成功
#include<iostream>
using namespace std;
//字符调换
void exchange(char &ch1, char & ch2)
{
char  temp;
temp = ch1;
ch1 = ch2;
ch2 = temp;
}
//字符串反转
char * strReverse( char *deststr)
{
int strlength = strlen(deststr);//求元字符串的长度
if( strlength <= 1)//判断并返回值
return deststr;//如果为空或为一个字符那么直接返回
for(int start = 0; start < strlength/2; start++ )//字符串反转
{//调用函数
exchange( deststr[start], deststr[strlength - start - 1] );
}
return deststr;
}


int strMatch( char * teststr,  char * srcstr)
{
if( teststr == NULL || srcstr== NULL)
{ return -1; }

int testlen = strlen(teststr);//求被匹配串的长度
int srclen = strlen(srcstr);//求匹配串的长度
//用for循环检查是否匹配
for(int test = 0; test < testlen - srclen; test++)
{
for( int src = 0; srcstr[src] == deststr[src + test]; src++ )
{ //如果匹配串的下标加一等于匹配串的长度,那么就是可以匹配,
if((src + 1) == srclen)
return test+1;//返回源串里有匹配串的起始位置
}
}
return -1;//否则,返回负一
}

int main()
{
//测试程序
char dest[40] = "tony, you and me are sunny boy!";
char src1[4] = "you";
char src2[5] = "tony";

int bs1 = strMatch(dest, src1);
int bs2 = strMatch(dest, src2);

cout << bs1 << '\t' << bs2 << endl;
strReverse(dest);
cout << dest << endl;

return 0;
}

转载于:https://www.cnblogs.com/tony-net/archive/2009/09/24/1573398.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值