c语言求助:将字符串s中的子字符串s1全部替换为子字符串s2.用指针实现
答案:1 悬赏:20
解决时间 2021-03-13 05:27
- 提问者网友:嘚啵嘚啵
- 2021-03-12 07:38
c语言求助:将字符串s中的子字符串s1全部替换为子字符串s2.用指针实现
最佳答案
- 二级知识专家网友:玩世
- 2021-03-12 09:15
#include
#include
#define MAXLENGTH 100
void replace(char *s, char *s1, char *s2)
{
int len1 = strlen(s), len2=strlen(s1), len3 = strlen(s2);
char buf[MAXLENGTH]; //保存替换后的字符串
int i, j, k, l;
for(i=0, k=0; i
for(j=0; j if(*(s+i+j) != *(s1+j)) break;
}
if(j == len2) {
l = 0;
while(l i += len2;
continue;
} else {
*(buf+k++) = *(s+i++);
}
}
while(i *(buf+k) = '\0';
strcpy(s, buf);//将替换后的串复制给s.
}
int main()
{
char str[MAXLENGTH] = {NULL};
char str1[MAXLENGTH] = {NULL};
char str2[MAXLENGTH] = {NULL};
printf("请输入字符串s: \n");
gets(str);
fflush(stdin);
printf("请输入字符串s1: \n");
gets(str1);
fflush(stdin);
printf("请输入字符串s2: \n");
gets(str2);
replace(str, str1, str2);
printf("替换后的字符串: %s\n", str);
return 0;
}
#include
#define MAXLENGTH 100
void replace(char *s, char *s1, char *s2)
{
int len1 = strlen(s), len2=strlen(s1), len3 = strlen(s2);
char buf[MAXLENGTH]; //保存替换后的字符串
int i, j, k, l;
for(i=0, k=0; i
for(j=0; j
}
if(j == len2) {
l = 0;
while(l
continue;
} else {
*(buf+k++) = *(s+i++);
}
}
while(i
strcpy(s, buf);//将替换后的串复制给s.
}
int main()
{
char str[MAXLENGTH] = {NULL};
char str1[MAXLENGTH] = {NULL};
char str2[MAXLENGTH] = {NULL};
printf("请输入字符串s: \n");
gets(str);
fflush(stdin);
printf("请输入字符串s1: \n");
gets(str1);
fflush(stdin);
printf("请输入字符串s2: \n");
gets(str2);
replace(str, str1, str2);
printf("替换后的字符串: %s\n", str);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯