字符串:实现 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;
}
全部评论

相关推荐

shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务