当前位置: 首页 > 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/a/133828.html

相关文章:

  • HBase 安装与基本操作指南
  • 淘宝代购系统;海外代购系统;代购程序,代购系统源码PHP前端源码
  • 编写红绿起爆线指标(附带源码下载)
  • DataWorks on EMR StarRocks,打造标准湖仓新范式
  • 探索Pillow库:Python图像处理的瑞士军刀
  • 冗余连接2 hard题 代随C#写法
  • 消息消费过程
  • 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