# include <stdio.h>
# include <string.h>
int main()
{
void replace(char str[], char key[], char swap[]);
//str中存放源串,key中存放被替换的字符串,不能为空串,swap中为替换的字符串,可以为空串
char str1[1000], key1[500], swap1[500];
gets(str1);
gets(key1);
gets(swap1);
replace(str1, key1, swap1);//调用替换函数
printf("%s\n", str1);
return 0;
}
void replace(char str[], char key[], char swap[])//定义替换函数
{
int l1, l2, l3, i, j, flag;
char tmp[1000];//临时存放字符串
//测量各字符串的长度
l1 = strlen(str);
l2 = strlen(key);
l3 = strlen(swap);
for(i = 0; i < l1 - l2; i++)//l1 - l2为源串与需删除(替换)的字串的长度差
{
flag = 1;
for(j = 0; j < l2; j++)//开始查找字符串
{
if (str[i + j] != key[j])
{
flag = 0;
break;
}
}
if (flag)//找到字符串
{
strcpy(tmp, str);//将源串赋值到临时数组tmp中
strcpy(&tmp[i], swap);//用swap中的字符串替换tmp中的i之后的部分
strcpy(&tmp[i + l3], &str[i + l2]);//将str除去key后的后半部分赋值给tmp
strcpy(str, tmp);//再将tmp赋值到str中
i += l3 - 1;
l1 = strlen(str);
}
}
}
C语言——字符串替换
最新推荐文章于 2024-07-11 10:10:05 发布