注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Kandy

长风破浪会有时,直挂云帆济沧海!

 
 
 

日志

 
 

【转】C++ int,char,string,CString类型转换  

2009-08-18 18:48:16|  分类: C++知识点 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

#include <string>  //使用C++标准库的string类时

using namespace std;  //同上

#include <sstream>  

#include <iostream>

#include <stdlib.h>    //要将string类和int类型直接转换最好有这些包含,

                       //因为自己写一个转换函数比较方便,函数定义参考如下

string getstring ( const int n )

{

    std::stringstream newstr;

    newstr<<n;

    return newstr.str();

}

 1.string 转 CString

CString.format(”%s”, string.c_str());

2.char 转 CString

CString.format(”%s”, char*);

3.char 转 string

string s(char *);

4.string 转 char *

char *p = string.c_str();

5.CString 转 string

string s(CString.GetBuffer());

 

6.string -> CString

CString.format(”%s”, string.c_str());

用c_str()确实比data()要好.

6,char -> string

string s(char *);

只能初始化,在不是初始化的地方最好还是用assign().

7,CString -> string

string s(CString.GetBuffer());

GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

《C++标准函数库》中说的有三个函数可以将字符串的内容转换为字符数组和C—string

1.data(),返回没有”\0“的字符串数组

2,c_str(),返回有”\0“的字符串数组

3,copy()

—————————————————————

CString与int、char*、char[100]之间的转换- -

CString与int、char*、char[100]之间的转换- -

CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。

而将数字转换为CString变量,可以使用CString的Format函数。如

CString s;

int i = 64;

s.Format(”%d”, i)

Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString

ss=”1212.12″;

int temp=atoi(ss);

CString aa;

aa.Format(”%d”,temp);

AfxMessageBox(”var is ” + aa);

}

sart.Format(”%s”,buf);

CString互转char*

///char * TO cstring

CString strtest;

char * charpoint;

charpoint=”give string a value”;

strtest=charpoint;

///cstring TO char *

charpoint=strtest.GetBuffer(strtest.GetLength());

标准C里没有string,char *==char []==string

可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

CString转换 char[100]

char a[100];

CString str(”aaaaaa”);

strncpy(a,(LPCTSTR)str,sizeof(a));

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

(1) std::string -> CString:

    std::sting m_ModelName;

    CString pathName;

    pathName.Format("%s",m_ModelName.c_str());

 

(2) CString -> std::sting:

    CString cstr;

    std::string str;

    str = cstr.GetBuffer(0);

 

(3) _bstr_t -> CString:

    CString textureName;

    _bstr_t fileName;

    textureName = (LPCSTR)fileName;

 

(4) _bstr_t -> std::string:

     借CString转换,

  _bstr_t -> CString -> std::sting;

 

(5) CString -> _bstr_t:

    CString cstrPicName;

    _bstr_t bstrPicName = (_bstr_t)(LPCTSTR)cstrPicName;

 

(6) std::string ->_bstr_t:

    std::string name;

        CString cstrPicName;

        cstrPicName.Format("%s",name.c_str());

    _bstr_t   bstrPicName    (_bstr_t)(LPCTSTR)cstrPicName;

 

(7)string -> char*:

     string str = "prh";

     const char* ch = str.c_str();

     或:

     string str;

     char ch[10];

     strcpy(ch,str);

 

(8) char* -> string :

    char* ch ="prh";

    string str(ch);

 

(9) CString -> char*:

    CString pathName;

    char * catFile = (char*)(LPCTSTR)pathName;

 

(10) std::string -> int:

     std::string s_count;

     int count = std::atoi( s_count.c_str() );

 

  评论这张
 
阅读(1525)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017