字符串处理算法(三)按指定位置交换字符串两部分的位置

news/2024/7/5 19:18:49 标签: c++, 字符串, 算法, 笔试面试
实现一个函数:按指定位置交换字符串两部分的位置

比如:函数输入("abcde", 2) 输出"cdeab"


题目的意思应该比较明白,代码实现如下:

int SwapStr(char* input, int pos)
{
	char* p = input+pos;
	int nLen = strlen(input);

	//对输入数据检查
	if (input==NULL || nLen<pos)
	{
		return -1;
	}

	char* temp= new char[pos+1];

	if (temp == NULL) return -1;

	memcpy(temp, input, pos);
	temp[pos]='\0';
	memcpy(input, p, nLen-pos);
	memcpy(input+nLen-pos, temp, pos);

	delete[] temp;
	temp = NULL;

	return 0;
}
int main()
{
	char* str=new char[10];//想想这里为什么不是char* str="abcde";或者直接SwapStr("abcde",2);
	strcpy(str, "abcde");
	cout << str << endl;

	SwapStr(str, 2);

	cout << str << endl;

	delete[] str;

	return 0;
}

测试结果:

abcde
cdeab


转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12067631






http://www.niftyadmin.cn/n/951340.html

相关文章

java arraylist 拷贝数据_Copy ArrayList的四种方式

Copy ArrayList的四种方式简介ArrayList是我们经常会用到的集合类&#xff0c;有时候我们需要拷贝一个ArrayList&#xff0c;今天向大家介绍拷贝ArrayList常用的四种方式。使用构造函数ArrayList有个构造函数&#xff0c;可以传入一个集合&#xff1a;public ArrayList(Collect…

java sql 模板_JFinal新版sql模板有两种Template的调用方式,你学会了吗?

最近JBolt项目中升级到了最新版JFinal&#xff0c;很平滑&#xff0c;改了个版本号轻松完成。昨天&#xff0c;突然想起JFinal的新版ChangeLog中提到了Model Db里都增加了关于Sql模板更方便的书写调用方式。所以&#xff0c;JBolt开发平台里&#xff0c;底层BaseService里关于S…

整型数组处理算法(三)把一个数组里的所有元素,插入到另一个数组的指定位置

实现一个函数&#xff1a;把一个数组里的所有元素&#xff0c;插入到另一个数组的指定位置。 比如&#xff1a; 函数输入&#xff08;[2,5,3,4,7,0],2,[8,9,6]&#xff09;&#xff0c;输出[2,5,8,9,6,3,4,7,0]。 方法一、使用vector /* 参数说明&#xff1a; vec_a&#xf…

工作那些事(三)什么样的公司能吸引你,什么样的公司适合你?

什么样的公司能吸引你&#xff1f; 换句话说&#xff0c;在众多给你offer的公司中&#xff0c;影响你决定&#xff0c;让你徘徊和犹豫的有那些因素呢&#xff1f;关于这些谈谈我自己的想法&#xff0c;欢迎大家来点评。 在众多公司中&#xff0c;我首先考虑的是公司给的薪资待遇…

java web 启动流程_Java Web容器的启动与处理请求的过程

容器启动时的加载顺序一、启动一个WEB项目的时候&#xff0c;WEB容器会去读取它的配置文件web.xml&#xff0c;读取结点。二、容创建一个ServletContext(servlet上下文)&#xff0c;这个 web项目的所有部分都将共享这个上下文。三、容器将转换为键值对&#xff0c;并交给 servl…

java 判断是否是电话_Java判断一段话中是否有电话号码

判断一段话中是否有电话号码&#xff0c;并将其进行隐藏&#xff1a;public static String hidPhone(String string) {Pattern pattern Pattern.compile("(?Matcher matcher pattern.matcher(string);StringBuffer bf new StringBuffer(64);while (matcher.find()) {/…

整型数组处理算法(四)求数组的最大值和最小值

求数组的最大值和最小值&#xff0c;返回值在maxValue和minValue。 方法一&#xff1a; 分治法(Divide and couquer)&#xff0c;将数组分成左右两部分&#xff0c;先求出左半部份的最大值和最小值&#xff0c;再求出右半部份的最大值和最小值&#xff0c;然后综合起来求总体…

整型数组处理算法(五)求两个有序数组的共同元素

求两个有序数组的共同元素&#xff0c;比如数组a{1,2,3,8,9}和b{8,9,10},则输出output{8,9} 实现如下&#xff1a; // 找出两个数组的共同元素 int* FindCommon(int* a, int* b, int nA, int nB, int& nOut) {int i 0;int j 0 ;vector<int> vec_comm;int* output …