?? commonstr.cpp
字號:
#include <iostream.h>
#include <string.h>
char * substr(char *src, int start, int count)
{ int i, mx = strlen(src);
static char str[50];
char * temp = str;
for(i=start; i <= start+count-1 && i < mx; i ++)
* temp ++ = src[i];
* temp = '\0';
return str;
}
bool instr(char *src, char *subss)
{ int i, j, xs = strlen(src), ms = strlen(subss);
bool aa;
for(i = 0; i < xs; i ++) {
aa = true;
for(j = 0; j < ms; j ++)
if(subss[j] != src[i + j] || src[i+j] == '\0') {
aa = false;
break;
}
if(aa) return true;
}
return false;
}
main()
{ char *a[] = {"What is good local bus ? ",
"Name good some local bus",
"A good local bus is high speed I/O bus close to the processor." };
char *ch, maxstr[50];
int m, i, j, maxlen = 0;
m = strlen(a[0]);
for(i = 0; i < m; i ++) {
for(j = 1; j <= m - i; j ++) {
ch = substr(a[0], i, j);
if(instr(a[1], ch) && instr(a[2], ch)) {
if(strlen(ch) > maxlen) {
maxlen = strlen(ch);
strcpy(maxstr, ch);
}
}
}
}
if(maxlen > 0) cout << "最長公共字串是:[ " << maxstr << " ]" << endl;
else cout << "找不到公共字串 !" << endl;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -