#include<stdio.h>
#include<assert.h>
#include <stdafx.h>
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>//strtol头文件
#include <string to wstring.h>
#include <change.h>
using namespace std;
int changer::hex(char c)
{
if (c >= '0' && c <= '9')
return c - '0';
else if (c >= 'a' && c <= 'f')
return (c - 'a' + 10);
else if (c >= 'A' && c <= 'F')
return (c - 'A' + 10);
//assert(0);
return 0;
}
int changer::hex_to_decimal(const char * szHex, int len)
{
//class changer ch;
int result = 0;
for (int i = 0; i < len; i++)
{
result += (int)pow((float)16, (int)len - i - 1) * hex(szHex[i]);
}
return result;
}
string changer::hexstrtodecstr(string str)
{
//string str = "007E";
char hex[10000];
//char h;
int j = 0;
//class changer ch;
string st;
for (int i = 0; i <(int) str.size(); i++)
{
stringstream ss;
ss << str.substr(j, j + 1);
ss >> hex[i];//string->char
//hex[i] = str.substr(j, j + 1);
j++;
if (j == str.size())
break;
}
int result = hex_to_decimal(hex, str.size());
/*stringstream ss1;
ss1 << result;
ss1 >> st;//string->int*/
//st= ss.str();
//5 cout << s1 << endl; // 30
st = Int_to_String(result);
return st;
}
string changer::int2string(int inter)
{
string number;
std::stringstream its;
its << inter;//可以是其他数据类型
its >> number; //string -> int
return number;
}
int changer::string2int(string str)
{
int number;
std::stringstream its;
its << str;//可以是其他数据类型
its >> number; //string -> int
return number;
}
int changer::hextodec(string str)
{
char hex[10000];
//char h;
int j = 0;
//class changer ch;
string st;
for (int i = 0; i < (int)str.size(); i++)
{
stringstream ss;
ss << str.substr(j, j + 1);
ss >> hex[i];//string->char
//hex[i] = str.substr(j, j + 1);
j++;
if (j == str.size())
break;
}
int result =hex_to_decimal(hex, str.size());
return result;
}
string changer::char2string(char c)
{
string str;
std::stringstream cts;
cts << c;//可以是其他数据类型
cts >> str; //string -> int
return str;
}
byte changer::int2byte(int inter)
{
byte bytes;
std::stringstream itb;
itb << inter;//可以是其他数据类型
itb >> bytes; //string -> int
return bytes;
}
string changer::B2s(BYTE da)
{
string data;
std::stringstream s2c;
s2c << da;//可以是其他数据类型
s2c >> data; //string -> char
return data;
}
char changer::s2c(string str)
{
char c;
std::stringstream s2c;
s2c << str;//可以是其他数据类型
s2c >> c; //string -> char
return c;
}
string changer::B2cs(BYTE da)
{
char number;
std::stringstream its;
its << da;//可以是其他数据类型
its >> number; //string -> int
string data;
std::stringstream it;
it << number;//可以是其他数据类型
it >> data; //string -> int
return data;
}
double changer::int2double(int inter)
{
double number;
std::stringstream its;
its << inter;//可以是其他数据类型
its >> number; //string -> int
return number;
}
double changer::intstr2double(string inter)
{
double number;
std::stringstream its;
its << inter;//可以是其他数据类型
its >> number; //string -> int
return number;
}
const char * changer::s2cc(string str)
{
str;
//string s = "abc";
const char * s = str.c_str();
return s;
}
string changer::double2str(double n)
{
string str;
std::stringstream its;
its << n;//可以是其他数据类型
its >> str; //string -> int
return str;
}
string changer::Int_to_String(int n)
{
ostringstream stream;
stream << n; //n为int类型
return stream.str();
}
CString changer::int2CString(int inter)
{
string str;
std::stringstream its;
its << inter;//可以是其他数据类型
its >> str; //string -> int
CString cstr(str.c_str());
return cstr;
}
CString changer::str2CStr(string str)
{
CString cstr(str.c_str());
return cstr;
}
string changer::CStr2str(CString cstr)
{
string str;
str = cstr.GetBuffer(0);
return str;
}
wstring changer::CStr2wstr(CString cstr)
{
wstring wstr;
wstr = str2wstr(CStr2str(cstr));
return wstr;
}
wstring changer::str2wstr(const string& s)
{
_bstr_t t = s.c_str();
wchar_t* pwchar = (wchar_t*)t;
wstring result = pwchar;
return result;
}
string changer::Big2litt(string str)
{
transform(str.begin(), str.end(), str.begin(), tolower);
return str;
}
string changer::litt2Big(string str)
{
transform(str.begin(), str.end(), str.begin(), toupper);
return str;
}
string changer::changebigandlitt(string str)//可以转换大小写,不介意单字符,字符串,以及含有数字的字符串
{
/*string a = "a";
string z = "z";
string A = "A";
string Z = "Z";
if(a<=str&&z>=str)
{
str = litt2Big(str);
}
else if (A <= str&&Z >= str)
{
str = Big2litt(str);
}*/
string str1 = "";
string str2 = "";
string a = "a";
string z = "z";
string A = "A";
string Z = "Z";
string ze = "0";
string ni = "9";
int g = 0;
if (ze <= str.substr(0, 1) && ni >= str.substr(0, 1))
{
str = a + str;
if (a <= str&&z >= str)
{
str = litt2Big(str);
}
else if (A <= str&&Z >= str)
{
str = Big2litt(str);
}
str = str.substr(1);
}
else
{
if (a <= str&&z >= str)
{
str = litt2Big(str);
}
else if (A <= str&&Z >= str)
{
str = Big2litt(str);
}
}
return str;
}
CString changer::changedate(CString tim)
{
string s1 = "-";
string s2 = " ";
string s3 = "0";
if (CStr2str(tim).size() == 14)
{
tim = str2CStr(CStr2str(tim).substr(0, 4)+s1 + CStr2str(tim).substr(6, 2)+s1 + CStr2str(tim).substr(10, 2));
}
else if (CStr2str(tim).size() == 12)
{
tim = str2CStr(CStr2str(tim).substr(0, 4) + s1 + s3 + CStr2str(tim).substr(6, 1) + s1 + s3 + CStr2str(tim).substr(9, 1));
}
else if (CStr2str(tim).size() == 13)
{
if (CStr2str(tim).substr(8, 2) == "月")
{
tim = str2CStr(CStr2str(tim).substr(0, 4) + s1 + CStr2str(tim).substr(6, 2) + s1 + s3 + CStr2str(tim).substr(10, 1));
}
else
{
tim = str2CStr(CStr2str(tim).substr(0, 4) + s1 + s3 + CStr2str(tim).substr(6, 1) + s1 + CStr2str(tim).substr(9, 2));
}
}
return tim;
}
CString changer::changetime(CString tim)
{
CString time ;
string z = "0";
if (CStr2str(tim).size() == 8)
{
time = tim;
}
else if (CStr2str(tim).size() == 6)
{
time = str2CStr(z + CStr2str(tim).substr(0, 2) + z + CStr2str(tim).substr(2));
}
else if (CStr2str(tim).size() == 7)
{
if (CStr2str(tim).substr(1.1) == "1")
{
time= str2CStr(CStr2str(tim).substr(0, 3) + z + CStr2str(tim).substr(3));
}
else
{
time = str2CStr(z + CStr2str(tim));
}
}
return time;
}
CString changer::checktime(CString tim)
{
CString z;
z = _T("0");
if (CStr2str(tim).size() == 1)
{
tim = z+tim;
}
return tim;
}
CString changer::checkimei(CString imei)
{
//%7b%22gpsno%22%3a%2291001156%22%7d
CString s1 = _T("%7b%22gpsno%22%3a%22");
CString s2 = _T("%22%7d");
if (CStr2str(imei).size() == 15)
{
imei = imei;
}
else if(CStr2str(imei).size() == 8)
{
imei = s1+imei+s2;
}
return imei;
}
CString changer::checktimbend(CString tim)
{
CString ze = _T("0");
if (CStr2str(tim).substr(1, 1) == ":")
{
tim = ze + tim;
}
return tim;
}
没有合适的资源?快使用搜索试试~ 我知道了~
c++ 各种数据类型的转换的小函数
共2个文件
h:1个
cpp:1个
需积分: 50 22 下载量 98 浏览量
2018-02-13
17:43:42
上传
评论 1
收藏 2KB RAR 举报
温馨提示
30种c++中常用到的数据类型转换。已经封装成函数的形式,包含.h和.c,直接包含到工程中就能用
资源推荐
资源详情
资源评论
收起资源包目录
ch.rar (2个子文件)
ch
change.h 1KB
change.cpp 7KB
共 2 条
- 1
资源评论
嘉禾天成
- 粉丝: 5320
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功