在 C语言中字符串的替换如何实现的!

Python010

在 C语言中字符串的替换如何实现的!,第1张

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")

}

答题不易,如无疑问,觉得可以的话,采纳一下