weixin_74863832 2022-12-14 23:37 采纳率: 100%
浏览 40
已结题

关于#字符串#的问题,如何解决?



#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;
}
  • 写回答

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

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月14日

悬赏问题

  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题