C语言或者C++中关于字符串两两转换成无符号字符类型即MAC格式

C语言 码拜 10年前 (2015-05-11) 1769次浏览 0个评论

有一串字符传,FF0237FA0300,请教各位大神,怎么把这个字符串两两转换成无符号类型的格式,即u_char类型。使的用u-char类型输出时,是对应的16进制数。
char *tmp=”FF0237FA0300″;u_char mac[6];
不知道怎么把字符串进行转换,使得其mac[0]=”0xff”,mac[1]=”0x02″;mac[2]=”0x37″;mac[3]=”0xfa”;mac[4]=”0x03″;mac[5]=”0x00″;达到这种效果。求各位大神帮助

40分
仅供参考,unsigned char pChar[32];我设置的固定值,视情况自己改。否则出现Bug概不负责。


void get16(string strBuffer)
{
	vector<string> vctStr;
	for (int i=0;i<strBuffer.size();i=i+2)
	{
		string strTemp = strBuffer.substr(i,2);
		vctStr.push_back(strTemp);
	}
	vector<string>::size_type first;
	int isize = vctStr.size();
	unsigned char pChar[32];
	for (first = 0;first < isize;first++)
	{
		pChar[first] = _tcstol(vctStr[first].c_str(),NULL,16); //转换成十六进制
	}
}
使用的头文件:
#include <tchar.h>
#include <vector>
using namespace std;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言或者C++中关于字符串两两转换成无符号字符类型即MAC格式
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!