#include <stdio.h>
#include <string.h>
int main(){
char s1[81],s2[81],temp[81]={0},*k; //最长=80个字母+1个回车符;同时必须初始化数组
int len1,len2,len3;
gets(s1);
gets(s2);
k=strstr(s1,s2); //在s1字符串中找到s2字符串的第一个位置,返回的是指针
while(k){
len1=strlen(s1);
len2=strlen(s2); //len3长度为子串,每次循环不变,可放到循环外
len3=strlen(k);
strncat(temp,s1,len1-len3); //将定位的位置之前的字符串暂存到temp数组
strcat(temp,k+len2); //再将所定位后的字符串(除去子串)链接到temp中
strcpy(s1,temp); //再将temp复制到s1
memset(temp,0,sizeof(temp)); //清空,即将temp暂存的数据全部变成0;
k=strstr(s1,s2); //再次在s1中寻找s2字符串,若找到则继续循环,否则跳出;
}
printf("%s",s1); //打印字符串快捷方法
return 0;
}
其中memset()函数应用查看:
本文介绍了一个C语言程序,该程序能够实现字符串中指定子串的全部替换操作,并详细解释了程序流程,包括使用strstr()进行子串定位及使用memset()进行数组清零等关键步骤。
886

被折叠的 条评论
为什么被折叠?



