int char* string …
2018-02-23 17:16
519 查看
int to
char*/char[]
方法:
int num=0;
char temp[64];
sprintf(temp, "%d",num);
或
int number = 123456;
char string[25];
itoa(number,
string, 10); //10 转换数字的基数(进制)10就是
说按照10进制转换数字。还可以是2,8,16等等你喜欢的进制类型
char* to
string
方法:
char temp[64];
string str1(temp);
你的只能初始化或赋值,在不是初始化的地方最好还是用assign().
string &assign(const char *s);用c类型字符串s赋值
或
char temp[64];
string str1;
str1=temp;
int to string
用int
to char*/char[]和char* to string结合。
string to char*
方法:
char c[20];
string s="1234";
strcpy(c,s.c_str());
最好不用下面方法
string str;
char* temp;
temp=filename.c_str()
//c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
string to
int
方法:
string source = "1412";
int result = 0;
// 使用Convert.ToInt32(string value);
result = Convert.ToInt32(source);
// 使用Int32.Parse(string value);
result = Int32.Parse(source);
// 使用Int32.TryParse(string s, out int result);
Int32.TryParse(source, out result);
以上三者不同之处:
http://blog.csdn.net/clever_yang/archive/2009/03/20/400800
5.aspx
①Cstring to
float
Cstring strtemp=”11.22”;
float m_drundistance=atof(StrTemp); //把strtemp
转化为浮点型
错误提示:
.cpp(815): error C2664: 'atof' : cannot convert parameter 1 from
'CString' to 'const char *'
原因:double atof(const char *nptr);
解决分析: CString 转化成 char*
之一:使用CString对象的GetBuffer方法,于是乎m_drundistance =
atof(StrTemp.GetBuffer(0));又出现错误:
cpp(815): error C2664: 'atof' : cannot convert parameter 1 from
'wchar_t *' to 'const char *'
说明以上方法行不通,因此使用
方法一、LPCTSTR强制转化(虽然建议不用)
m_drundistance =
atof((char*)LPCTSTR(StrTemp));
测试成功,经过测试并无数据丢失。
方法二、使用USES_CONVERSION宏,不过这个宏不能使用在大的循环体和大的函数中,因为其分配的内存在函数结束的时候才能释放,所以存在堆栈溢出的问题。
USES_CONVERSION
m_drundistance =
atof(T2A(StrTemp));
方法三、可先把cstring类型转换到 char* 然后再给atof。(这种方法可行性好)
char
Str[1024];
cstring str2;
WideCharToMultiByte(CP_ACP,0,str2,-1,Str,1024,NULL,NULL);
float ff =
atof(Str);
②Cstring to
int
//将ID由CString转换成int
CString tempField1;
int ruleID =
_tstoi(tempField1);
//将ID由char 转换到int
char tempField1[10];
ruleID=atoi(tempField1);
③CString to
char*
方法一、WideCharToMultiByte()函数
Cstring str2;
char
Str[1024];
WideCharToMultiByte(CP_ACP,0,str2,-1,Str,1024,NULL,NULL);
方法二、T2A()
USES_CONVERSION
Char * str= T2A(StrTemp);
方法三、强制转换
Char*
str=(char*)LPCTSTR(StrTemp);
④char * 、int、
float等类型转换到cstring
此类转换就比较容易,可通过format或sprintf等格式转换下即可。
例: int k=10;
Cstring strtype;
StrType.Format(_T("%d",ê?k));
char* ch;
CString str;
ch=(LPSTR)(LPCTSTR)str;
str="good!";
sprintf(ch,"%s",(LPTSTR)(LPCTSTR)str);
4. 安全性
CString > string > char*;
5. 灵活性
CString > string >char*;
6. 可移植性
char* = string > CString;
char*/char[]
方法:
int num=0;
char temp[64];
sprintf(temp, "%d",num);
或
int number = 123456;
char string[25];
itoa(number,
string, 10); //10 转换数字的基数(进制)10就是
说按照10进制转换数字。还可以是2,8,16等等你喜欢的进制类型
char* to
string
方法:
char temp[64];
string str1(temp);
你的只能初始化或赋值,在不是初始化的地方最好还是用assign().
string &assign(const char *s);用c类型字符串s赋值
或
char temp[64];
string str1;
str1=temp;
int to string
用int
to char*/char[]和char* to string结合。
string to char*
方法:
char c[20];
string s="1234";
strcpy(c,s.c_str());
最好不用下面方法
string str;
char* temp;
temp=filename.c_str()
//c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
string to
int
方法:
string source = "1412";
int result = 0;
// 使用Convert.ToInt32(string value);
result = Convert.ToInt32(source);
// 使用Int32.Parse(string value);
result = Int32.Parse(source);
// 使用Int32.TryParse(string s, out int result);
Int32.TryParse(source, out result);
以上三者不同之处:
http://blog.csdn.net/clever_yang/archive/2009/03/20/400800
5.aspx
①Cstring to
float
Cstring strtemp=”11.22”;
float m_drundistance=atof(StrTemp); //把strtemp
转化为浮点型
错误提示:
.cpp(815): error C2664: 'atof' : cannot convert parameter 1 from
'CString' to 'const char *'
原因:double atof(const char *nptr);
解决分析: CString 转化成 char*
之一:使用CString对象的GetBuffer方法,于是乎m_drundistance =
atof(StrTemp.GetBuffer(0));又出现错误:
cpp(815): error C2664: 'atof' : cannot convert parameter 1 from
'wchar_t *' to 'const char *'
说明以上方法行不通,因此使用
方法一、LPCTSTR强制转化(虽然建议不用)
m_drundistance =
atof((char*)LPCTSTR(StrTemp));
测试成功,经过测试并无数据丢失。
方法二、使用USES_CONVERSION宏,不过这个宏不能使用在大的循环体和大的函数中,因为其分配的内存在函数结束的时候才能释放,所以存在堆栈溢出的问题。
USES_CONVERSION
m_drundistance =
atof(T2A(StrTemp));
方法三、可先把cstring类型转换到 char* 然后再给atof。(这种方法可行性好)
char
Str[1024];
cstring str2;
WideCharToMultiByte(CP_ACP,0,str2,-1,Str,1024,NULL,NULL);
float ff =
atof(Str);
②Cstring to
int
//将ID由CString转换成int
CString tempField1;
int ruleID =
_tstoi(tempField1);
//将ID由char 转换到int
char tempField1[10];
ruleID=atoi(tempField1);
③CString to
char*
方法一、WideCharToMultiByte()函数
Cstring str2;
char
Str[1024];
WideCharToMultiByte(CP_ACP,0,str2,-1,Str,1024,NULL,NULL);
方法二、T2A()
USES_CONVERSION
Char * str= T2A(StrTemp);
方法三、强制转换
Char*
str=(char*)LPCTSTR(StrTemp);
④char * 、int、
float等类型转换到cstring
此类转换就比较容易,可通过format或sprintf等格式转换下即可。
例: int k=10;
Cstring strtype;
StrType.Format(_T("%d",ê?k));
char* ch;
CString str;
ch=(LPSTR)(LPCTSTR)str;
str="good!";
sprintf(ch,"%s",(LPTSTR)(LPCTSTR)str);
4. 安全性
CString > string > char*;
5. 灵活性
CString > string >char*;
6. 可移植性
char* = string > CString;
相关文章推荐
- char ,int,long,float,double…
- 将string转换成char* (转)
- int String互转
- char,int,long,long long类型…
- CString、char、string、int、_bstr_t、CTime、COleDateTime相互转换&判断一个字符串是一个浮点数
- no matching function for call to ‘std::basic_string<char>::assign(std::string&, int)
- String转为Int 的异常错误
- char & string 与 int 类型的互换方法
- java&nbsp;string.ToCharArray()的…
- Android中 int 和 String 互…
- VS2010&nbsp;char*&nbsp;String&nbsp;CString转换
- int main(int argc,char…
- 【转】CString转char&nbsp;*&nbsp;,string
- C++中的&nbsp;pair&lt;map&lt;string,&nbsp;int&gt;::i…
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- CString,int,string,char*之间的转换
- char CString string int 之间的转换
- 32位机器中int/char/long 的字长 && 字节对齐
- C++ int,char,string,CString类型转换 [转]
- VC CString,int,string,char*之间的转换