c++学习 字符串反转 string 转 vector<char>

大致思路: 倒序遍历string,将每个字符装入vector< char >

#include <iostream>
#include <vector> 
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
vector<char> inversion(string str){
	vector <char> str2;
	int len=str.length();
	for(int i=len-1;i>=0;i--){
		str2.push_back(str[i]);
	}
    for(vector<char>::iterator it=str2.begin();it!=str2.end();it++)
	{
		cout<<*it;
	}
	return str2;
}
int main(int argc, char** argv) {
	string str;
	cin>>str;
	inversion(str);
	return 0;
}
将十六进制的字符串换为`std::vector<char>`,首先需要解析这个字符串并将其每个字符换为其对应的ASCII或Unicode字符。以下是一个步骤说明: 1. 创建一个空的`std::vector<char>`容器,用于存储最终的结果。 2. 遍历十六进制字符串,它通常由两组对的字符组成,每组代表一个字节(如果是大端序系统)或者两个字节(如果是小端序系统)。例如,"0x1FAB"代表两个字节(0x1F和0xAB)。 3. 对于每组字符,分割成高位和低位,并换为整数。可以使用`std::stoul()`函数,第一个参数是高位字符,第二个参数是低位字符,第三四个参数分别对应基数(这里是16)和是否忽略多余的字符(对于不足两位的高位字符)。 4. 将得到的整数值换为对应的字符。在C++中,你可以通过`static_cast<char>(value)`来实现,这里`value`是之前计算出的十六进制数值。 5. 将字符添加到`std::vector<char>`容器中。 示例代码片段(假设输入是十六进制字符串`const std::string hexStr = "0x1FAB";`): ```cpp #include <vector> #include <sstream> std::vector<char> hexToChars(const std::string& hexStr) { std::vector<char> charVec; size_t len = hexStr.length(); for (size_t i = 0; i < len; i += 2) { // 遍历每两个字符一组 int value = static_cast<int>(std::stoi(hexStr.substr(i, 2), nullptr, 16)); charVec.push_back(static_cast<char>(value)); } return charVec; } // 使用示例 int main() { std::string hexStr = "0x1FAB"; std::vector<char> result = hexToChars(hexStr); // 现在result包含了"0x1FAB"的二进制表示 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值