考试中,各位大大帮帮忙,C的程序,时间不多了,急急急。。。。。

lixingfu_34 2012-03-10 08:38:54
#include <stdio.h>
void main()
{
char r[100];
int i,j,k,len;
gets(r);
scanf("%d,%d",&j,&j);
len=strlen(r);
if (i+j-1>len) printf("超界\n");
else
/*此处添加语句段*/
puts(r);
}


实现采用顺序存储时,删除子串的运算:从串r中第i个字符开始,把连续j个字符组成的子串删除。
...全文
73 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Spy 2012-03-10
  • 打赏
  • 举报
回复
牛人。。。说句不好的话,挂了还可以重来啊,以后多上CSDN就不怕啦,或者Q:474957860
shyrgst 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rabbitlbj 的回复:]

引用 5 楼 shyrgst 的回复:

直接利用strcpy(&amp;r[i],&amp;r[i+j]);就可以了
#include <stdio.h>
#include "string.h"
void main()
{
char r[100];
int i,j,len;
gets(r);
scanf("%d,%d",&amp;i,&amp……
[/Quote]
这个还真没有注意到,百度一下,谢谢提醒
lixingfu_34 2012-03-10
  • 打赏
  • 举报
回复
只求个结果,讨论就等小弟考完再跟各位大大来吧!
RabbitLBJ 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shyrgst 的回复:]

直接利用strcpy(&r[i],&r[i+j]);就可以了
#include <stdio.h>
#include "string.h"
void main()
{
char r[100];
int i,j,len;
gets(r);
scanf("%d,%d",&i,&j);
len=strlen(r);
if (i+j-1>len) pr……
[/Quote]

strcpy考虑了内存重叠吗??还是用memmove吧,后面自己置零
PicDog 2012-03-10
  • 打赏
  • 举报
回复
有压力
shyrgst 2012-03-10
  • 打赏
  • 举报
回复
直接利用strcpy(&r[i],&r[i+j]);就可以了
#include <stdio.h>
#include "string.h"
void main()
{
char r[100];
int i,j,len;
gets(r);
scanf("%d,%d",&i,&j);
len=strlen(r);
if (i+j-1>len) printf("超界\n");
else
/*此处添加语句段*/
strcpy(&r[i],&r[i+j]);
puts(r);
}
shyrgst 2012-03-10
  • 打赏
  • 举报
回复
前面的语句是你打错了吗?scanf("%d,%d",&j,&j);?两次输入?
RabbitLBJ 2012-03-10
  • 打赏
  • 举报
回复

for(int k = 0;k < j;k++)
{
r[i+k] = r[i+j+k];
}
r[i+j] = '\0';


lixingfu_34 2012-03-10
  • 打赏
  • 举报
回复
不会啊,不然就挂啦![Quote=引用 1 楼 wwe6697911 的回复:]
我不会做啊 ,
额 ...考试还敢上网啊
[/Quote]
感觉在继续 2012-03-10
  • 打赏
  • 举报
回复
我不会做啊 ,
额 ...考试还敢上网啊

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧