关于字符串插入

复制代码
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int s_l = 0, t_l = 0;
void insert(char *s, char *t, int pos)
{
    
    char *ptr;
    for (ptr = s; *ptr != '\0'; ptr++)
    {
        s_l++;
    }
    for (ptr = t; *ptr != '\0'; ptr++)
    {
        t_l++;
    }
    for (int i =s_l;i>=pos-1;i--)
    {
        s[i+t_l]=s[i];
    }
    int c = 0;
    for (int i = pos - 1; i < pos + t_l-1; i++)
    {

        s[i] = t[c];
        c++;
    }
}
int main()
{
    int pos;
    char s[1000],t[1000];
    while (cin >> pos && pos != 0)
    {
        cin >> s >> t;
        insert(s, t, pos);
        for (int i = 0; i <s_l+t_l-1; i++)
        {
            cout << s[i];
        }
        cout << s[s_l + t_l - 1] << endl;
        s_l = t_l = 0;
    }
    //system("pause");
    return 0;
}
复制代码

描述

 

编写算法,实现下面函数的功能。函数void insert(char*s,char*t,int pos)将字符串t插入到字符串s中,插入位置为pos(插在第pos个字符前)。假设分配给字符串s的空间足够让字符串t插入。(说明:不得使用任何库函数)

 

输入

多组数据,每组数据有三行,第一行为插入的位置pos,第二行为要被插入的字符串s,第三行为待插入的字符串t。当pos为“0”时输入结束。

输出

对于每组数据输出一行,为t插入s后的字符串。

输入样例 1 

1
abcde
abc
2
acd
baaaa
0

输出样例 1

abcabcde
abaaaacd


问题:1、把t插入到s中,循环的次数弄错了
 2、字符数组的长度:
char *ptr; for (ptr = s; *ptr != '\0'; ptr++) { s_l++; } for (ptr = t; *ptr != '\0'; ptr++) { t_l++; }
 
posted @   Tomorrow1126  阅读(1095)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示