c语言:编写程序:从键盘上输入字符串S和字符串T,利用替换算法Replace将S串中的子串S1用串T替换。
时间: 2024-04-29 15:22:32 浏览: 110
好的,关于编写替换算法的问题,我可以帮您解答。您可以参考以下代码:
```
#include <stdio.h>
#include <string.h>
void replace(char s[], char s1[], char t[]) {
int i, j, k, n, n1, nt, match;
char s2[100];
n = strlen(s);
n1 = strlen(s1);
nt = strlen(t);
match = 0;
for (i = 0; i <= n - n1; i++) {
match = 0;
for (j = i; j < i + n1; j++) {
if (s[j] != s1[j - i]) {
match = 1;
break;
}
}
if (match == 0) {
for (j = 0; j < i; j++) {
s2[j] = s[j];
}
for (j = 0, k = i + n1; j < nt; j++, k++) {
s2[k] = t[j];
}
for (j = i + n1, k = i + nt; j < n; j++, k++) {
s2[k] = s[j];
}
s2[k] = '\0';
strcpy(s, s2);
n += nt - n1;
}
}
}
int main() {
char s[100], s1[100], t[100];
printf("Enter the string S: ");
gets(s);
printf("Enter the substring S1: ");
gets(s1);
printf("Enter the substring T: ");
gets(t);
replace(s, s1, t);
printf("The new string is: %s\n", s);
return 0;
}
```
该程序会从键盘上输入字符串S、子串S1和子串T,然后利用替换算法将S串中的子串S1用串T替换。具体实现细节请查看代码。
阅读全文