字串轉置和字串匹配
來源:互聯網
上載者:User
字串的反轉和字串匹配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;}