1、首先输入代码:
#include <string.h>
#include <stdio.h>
/**
* 参数:
* originalString[] :原始字符串
* key[] : 待替换的字符串
* swap[] : 新字符串
*/
void replace(char originalString[], char key[], char swap[]){
int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag
char tmp[1000]
2、然后输入:
//获取各个字符串的长度
lengthOfOriginalString = strlen(originalString)
lengthOfKey = strlen(key)
lengthOfSwap = strlen(swap)
for( i = 0i <= lengthOfOriginalString - lengthOfKeyi++){
flag = 1
//搜索key
for(j = 0j <lengthOfKeyj ++){
if(originalString[i + j] != key[j]){
flag = 0
break
}
}
3、然后输入:
//如果搜索成功,则进行替换
if(flag){
strcpy(tmp, originalString)
strcpy(&tmp[i], swap)
strcpy(&tmp[i + lengthOfSwap], &originalString[i + lengthOfKey])
strcpy(originalString, tmp)
i += lengthOfSwap - 1
lengthOfOriginalString = strlen(originalString)
}
}
}
4、然后输入:
/**
* main function
*/
int main(){
char originalString[1000] = {"abcfffffabcfffffabcfffff"}
char key[] = {"abc"}
char swap[] = {"aabbcc"}
replace(originalString, key, swap)
printf("%s\n", originalString)
return 0
}
5、这样就完成了。
效果图:
代码:
#include<stdio.h>int getLen(char a[]) {
int len = 0
while (a[len] != '\0')len++
return len
}
int find(char a[], char b[], int idx) {
int la = getLen(a), lb = getLen(b), t = la - lb, i, f
for ( idx <= t idx++) {
f = 0
for (i = 0 i < lb i++) {
if (a[idx + i] != b[i]) { f = 1 break }
}
if (f == 0)return idx
}
return -1
}
int main() {
char a[1024], b[1024], cmp[1025]
int i = 0, j , la, lc
scanf("%s", a)
scanf("%s", cmp)
scanf("%s", b)
la = getLen(a)
lc = getLen(cmp)
j = 0 - lc
while (1) {
j = find(a, cmp, j + lc)
if (j == -1) {
while (i < la) {
printf("%c", a[i++])
}
break
}
for ( i < j i++)printf("%c", a[i])
i += lc
printf("%s", b)
}
printf("\n")
}
答题不易,如无疑问,觉得可以的话,采纳一下