字符串转置和字符串匹配

字符串的反转和字符串匹配
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;
}
posted @ 2009-09-24 16:07  tony smith  阅读(464)  评论(0编辑  收藏  举报