#include<stdio.h>
#include<string.h>
int replace_str(char* s, char* t, char* g) {
int i, j, k,n,count=0;
n = strlen(t);
char temp[80];
for (i = 0; s[i] != '\0'; i++) {
for (j = i, k = 0; s[j] == t[k] && t[k] != '\0'; j++, k++)
{
if (t[k+1] == '\0') {
strcpy(temp, s +i+ n);
s[i] = '\0';
strcat(s, t);
strcat(s, temp);
count++;
break;
}
}
} return count;
}
int main() {
char s[80],t[10],g[10];
gets(s);
gets(t);
gets(g);
replace_str(s, t, g);
puts(s);
printf("count=%d", replace_str(s, t, g));
return 0;
}

关于#字符串#的问题,如何解决?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 浪客 2022-12-14 23:54关注
int replace_str(char *s, char *t, char *g) { int i, j, k, n, count = 0; n = strlen(t); char temp[80]; for (i = 0; s[i] != '\0'; i++) { if (s[i] == *t) // t首字符相同开始比较 { k = 0; while (t[k] == s[i + k] && k < n && s[i + k] != '\0') // 比较整个t k++; if (k == n) // 匹配到字符串t { s[i] = '\0'; strcpy(temp, s + i + k); // 暂存匹配字符后面内容 strcat(s, g); // g连接到s strcat(s, temp); // 再把s后面部分链接回来 } i += k;//跳过替换部分中查找 count++; } } return count; } int main() { char s[80], t[10], g[10]; int count; gets(s); gets(t); gets(g); count = replace_str(s, t, g); puts(s); printf("count=%d", count); // return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用