分割字符串,反转字符串

本文介绍了一个面试中的编程题目,要求将字符串‘abcd asd sbcf’转换为‘sbcf asd abcd’,不允许使用标准库。解决思路包括找到空格位置,逆序插入子字符串到新字符串中,最终实现字符串反转。
摘要由CSDN通过智能技术生成

朋友去面试,考试的出了这样一道题目,如下:

将字符串“abcd asd sbcf”转化成“sbcf asd abcd”输出,不得使用标准库。

首先我们要捋清思路,看这道题目的意思好像就是要将字符按照空格分割出来  然后在将截取的子串合并在一起。截取字串可以根据空格在原始字符串之中的位置来获取,获取之后添加到新的字符串里面即可;

下面是如何根据空格的位置来截取子串

/*
	@brief     获取输入字符串的倒转子串 比如输入“abcd ascd” 输出"ascd abcd"
	@src_str   输入原始字符串
	@dest_str  输出倒转之后的字符串
	@space_pos 空格在原始字符串之中的位置
	@dest_pos  目的字符串中的位置
*/
void GetSubStr(const char* src_str,char*dest_str,int space_pos, int &dest_pos)
{
       space_pos++;
       while (src_str[space_pos] != 0 && src_str[space_pos] != ' ')
       {
		   dest_str[dest_pos++] = src_str[space_pos++];
       }
	   dest_str[dest_pos++] = ' ';
}


前提条件是要获取原始字符串之中所有空格的位置,然后按照位置最靠后的空格来调用上述函数,当所有的空格都调用完毕之后,需要将第一个子串添加到dest_str之中。

	i = 0;
	w
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值