当前位置: 首页 > article >正文

C++ 字符串的 拼接,插入,查找与截取。

字符串的  拼接,插入,查找与截取。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include<iostream>
#include<cmath>
#include<cstring>
#include<iostream>
#include<string.h>
#define MAX 1024
using namespace std;
char * A(char *s1, char*s2)
{
	strcat(s1, s2);
	return s1;
}



char * B(char *s1,int a,int b )
{
	char* buf = new char[MAX];
	
	int j = 0;
	for (int i = a; s1[i] && i < a+b; i++)
		buf[j++] = s1[i];
	buf[j] = '\0';
	strcpy(s1, buf);
	delete buf;
	return s1;
}

char* C(char* s1, char* s2, int a) {
	if (a > strlen(s1))
		return s1;

	char buf[2] = {0,0}, * p;
	char* buf1 = new char[MAX];
	buf[0] = s1[a];
	s1[a] = '\0';
	p = s1 + a + 1;
	strcpy(buf1, s1);	
	strcat(buf1, s2);
	strcat(buf1, buf);
	strcat(buf1, p);

	strcpy(s1, buf1);
	delete buf1;
	return s1;
}

int main()
{
	int n,a,b;
	cin >> n;
	char s1[1024];
	char s2[1024];
	char* p;
	getchar();
	cin >> s1;
	for (int i = 0; i < n; i++) {
		int k;
		cin >> k;
		switch (k)
		{
		case 1:
			getchar();
			cin >> s2;			
			cout << A(s1, s2) << endl;
			break;
		case 2:
			cin >> a >> b;
			cout << B(s1, a, b) << endl;
			break;
		case 3:
			cin >> a;
			getchar();
			cin >> s2;
			cout << C(s1, s2, a) << endl;
			break;
		case 4:		
			getchar();
			cin >> s2;
			p=strstr(s1, s2);
			if(p)
				cout << p - s1 << endl;
			else
				cout << -1 << endl;

		}
	}
	return 0;
}


http://www.kler.cn/news/133828.html

相关文章:

  • 消息消费过程
  • CnosDB有主复制演进历程
  • main.js 中的 render函数
  • 几种典型的深度学习算法:(CNN、RNN、GANS、RL)
  • S32K324 UDS Bootloader开发-下位机篇-Bootload软件(2)
  • Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • 日志维护库:loguru
  • 图论| 827. 最大人工岛 127. 单词接龙
  • 运行ps显示msvcp140.dll丢失怎么恢复?msvcp140.dll快速解决的4个不同方法
  • react antd下拉选择框选项内容换行
  • js:react使用zustand实现状态管理
  • Shaderlab的组成部分SubShader
  • 分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测
  • C#中.NET 6.0 控制台应用通过EF访问新建数据库
  • 夺走的第一份工作竟是OpenAI CEO?
  • Linux文件和文件夹命令详解
  • MIB 6.1810实验Xv6 and Unix utilities(2)sleep
  • 九、Linux用户管理
  • Windows安装多个版本的Java
  • vue.js javascript js判断是值否为空
  • 庖丁解牛:NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片
  • 八股文-TCP的三次握手
  • C++-特殊类和单例模式
  • Leetcode—142.环形链表II【中等】
  • 基于springboot实现智能热度分析和自媒体推送平台系统项目【项目源码】
  • 将AI技术与VR元宇宙相结合的整体解决方案
  • 【Redis】zset常用命令集合间操作内部编码使用场景
  • 智能驾驶汽车虚拟仿真视频数据理解(一)
  • Java学习之路 —— Java高级