xian云 2016-06-11 03:12 采纳率: 100%
浏览 1254
已采纳

求大神帮忙看看c语言,输入一串字符,然后输入在某个单词之前插入一个单词的代码,调试总是出问题

#include
#include
#include
#define Acharlen 100
#define Bcharlen 20

char * mid(char * thechar,int start,int len)
{
char *my_char;
int i=0;

for(;start<start+len;start++,i++)
{
    *(my_char+i)=thechar[start];
}

return my_char;

}
int insert(char *longchar,char * my_char,unsigned int start)
{
unsigned int i,j=strlen(longchar);
if(strlen(longchar)+strlen(my_char)>Acharlen)
return 0;

    for(i=strlen(longchar);i>=start;i--)
        *(longchar+i+strlen(my_char))=*(longchar+i);

    for(i=0;i<=strlen(my_char);i++)
    {
        *(longchar+start+i)=*(my_char+i);
    }
return 1;

}
void main()
{
char a[Acharlen];
char b[Bcharlen];
char c[Acharlen];
char *my_char;
unsigned int i,k;

printf("please intput many char\n");
gets(a);
printf("please input insert before many char\n");
gets(b);
printf("please input inser char\n");
gets(c);

for(i=0;i<=strlen(a)-strlen(b);i++)
{
    my_char=mid(a,i,strlen(b));
    if(strcmp(my_char,b))
        break;
}

if(i>strlen(a)-strlen(b))
{
    printf("you input error\n");
    exit(0);
}

if(k=insert(a,c,i))
    puts(a);
else
    printf("error\n");

}

  • 写回答

2条回答 默认 最新

  • zhyank 2016-06-11 03:50
    关注

    还有for(i=strlen(longchar);i>=start;i--)
    (longchar+i+strlen(my_char))=(longchar+i);

    for(i=0;i<=strlen(my_char);i++)
    {
        *(longchar+start+i)=*(my_char+i);
    }这两个循环可以改写成一个循环! 从后面反过来插入.
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀