1.单词替换
p为新字符串,y指向要替换的字符串,a为需要替换的单词,b为替换后的单词
void rep(char p[], char* y, char* a, char* b) {
char* r = p;
int x = (int)strlen(a);
int m = (int)strlen(b);
while (*y) {
if (strncmp(y, a, x) == 0) {
strcat(r, b);
y+= x;
r += m;
}
else {
*r++=*y++;
}
}
}
2、
寻找字符串最小正周期
char a[80];
cin >> a;
int x = (int)strlen(a); int i;
for ( i = 1; i * 2 <= x; i++) {
if (x % i != 0)continue;
int j, k,c1=1;
for (k = i; k < x; k += i) {
for (j = 0; j < i; j++) {
if (a[j] != a[k+j])break;
}if (i == j)c1++;
}if (c1 == (x / i)) { cout << "最小正周期为:"<<i << endl; break; }
} if (i == (x / 2 + 1))cout << "no found" << endl;
3、
用单词字典搜索
{int a[500]={0}, m, n, i, j,p,q=0,k=0;
cin >> n >> m;
for (i = 0; i < n; i++) {
int x;
cin >> x;
if (q < m) {
for (j = 0; j < m; j++) {
if (x == a[j]) { break; }
}if (j == m) { a[q] = x; q++; k++; }
}
else {
for (j = 0; j < m; j++) {
if (x == a[j]) { break; }}
if (j == m) {
for (p = 0; p < m - 1; p++) { a[p] = a[p + 1]; }
a[m - 1] = x; k++;
}
}
}
cout << k << endl;}