关于字符串插入
#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++;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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,欢迎大家贡献代码