字符串:实现 void insert(char *s, char *t, int pos)。 将字符串 t 插入到字符串 s 中,插入位置为 pos。

#include <stdio.h>
/** * 函数 void insert(char *s, char *t, int pos) 将字符串 t 插入到字符串 s 中,插入位置为 pos。请用 C 语言实现该函数。假设分配给字符串 s 的空间足够让字符串 t 插入。(说明:不得使用任何库函数。) **/
//第一种先把s的pos以后的字符串链接到t上,然后在将t插入到s的pos位置
void insert(char *s, char *t, int pos)
{
    char *p,*q= t,*r;
    p = s + pos;//定位到s的pos位置 
    while (*q!='\0')//定位到t的最后 
    {
        q++;
    }
    while (*p!='\0')//把s的pos以后的字符串链接到t上
    {
        *q=*p;
        q++;
        p++; 
    }
    p = s + pos;//重新定位到s的pos位置 
    while (*t != '\0')//将现在的t链接到s后面 
    {
        *(p++) = *(t++);
    }
    puts(s);
}
// 第二种插入方式 直接在pos位置插入t
void insertss(char *s, char *t, int pos)
{
    char *p  ,r[5];
    int i = 0, lent = 0;
    p = s + pos;
    while (*p != '\0')
    {
        r[i++]= *p++;
    }
    r[i]='\0';
    p = s + pos;
    while (*t != '\0')
    {
        *(p++) = *(t++);
        lent++;
    }
    i=0;
    p=s+pos+lent;
    while (r[i] != '\0')
    {
        *(p++) = r[i++];
    }
    puts(s);
}
int main(int argc, char const *argv[])
{
    char s[20] = "adbdsd";
    char t[10] = "a34";
    int pos = 4;
    insert(s, t, pos);
    return 0;
}
全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
今天 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务