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日

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)