a2563039540 2022-10-12 22:02 采纳率: 66.7%
浏览 60
已结题

Exp05-Basic04,GJBook3-07-11 字符串部分删除

问题遇到的现象和发生背景

img

用代码块功能插入代码,请勿粘贴截图

这个问题我有两种思路,其中一种没问题,但是这一种一直有个点通过不了,不知道怎么回事

#include <stdio.h>
#include<string.h>
char* str_delete(char* s, int v, int w);
int main() {
    char str[300]; int v, w;
    scanf_s("%d%d", &v, &w);
    getchar();
    gets(str);    
    puts(str_delete(str, v, w));
    return 0;
}
char* str_delete(char* s, int v, int w) {
    char* mark = s + w;
        for (int j =0; j <v-1; j++) {
            if ((v + w) < strlen(s)){
                *(s + w) = *(s);
                    s++;
            }
    }
        return mark;
}


我的解答思路和尝试过的方法
我想要达到的结果麻烦各位看一下
  • 写回答

1条回答 默认 最新

  • [Pokemon]大猫猫 2022-10-12 23:03
    关注

    img

    #include<string.h>
    
    char* str_delete(char* s, int v, int w);
    int main() {
        char str[300]; int v, w;
        scanf_s("%d%d", &v, &w);
        getchar();
        gets(str);
        puts(str_delete(str, v, w));
        return 0;
    }
    
    char* str_delete(char* s, int v, int w) {
        char* mark = s + w;
    
        //移动v-1个字符,即v-1次
        for (int j = 1; j <= v - 1; j++) {
            //应该从后往前移动字符
            //第v-1字符(下标v-2)开始移动到v+w-1(下标v+w-2)位置
            //第v-2字符开始移动到v+w-2位置
            // ...
            // ...
            *(s + v + w - j - 1) = *(s + v - j - 1);
        }
        return mark;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题