CString string char* 之间的转换

下面是MFC/C++/C中字符类型CString, int, string, char*之间的转换的说明与举例,经常用的东西,相信对于用C/C++的朋友,还是比较有用的

string,CString,char*之间的转化

int 转 CString:

CString.Format("%d",int);

...............................

string 转 CString 

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

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

.......................................

char* 转 CString 

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

CString strtest;

char * charpoint;

charpoint="give string a value";

strtest=charpoint; //直接付值

...................................................................

CString 转 int 

CString  ss="1212.12";

int temp=atoi(ss); //atoi _atoi64或atol
将字符转换为整数,可以使用atoi、_atoi64或atol。

int int_chage = atoi((lpcstr)ss) ;

或:

CString str = "23";

UINT uint;

sscanf(str, "%d", uint);

..............................

string 转 int

..............................

char* 转 int

#include <stdlib.h>
 int atoi(const char *nptr);

long atol(const char *nptr);

long long atoll(const char *nptr);

long long atoq(const char *nptr);

...................................................................

CString 转 string 

string s(CString.GetBuffer());

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

..........................................

int 转 string

 ..........................................

char* 转 string  

string s(char *);

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

...................................................................

CString 转 char * 

复制代码代码如下:

CString strtest="wwwwttttttt";

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

CString转换 char[100]   char a[100];

CString str("aaaaaa");

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

CString  str="aaa";     char*  ch;

ch=(char*)(LPCTSTR)str;

..........................................

int 转 char *

在stdlib.h中有个函数itoa()  itoa的用法:  itoa(i,num,10);

i 需要转换成字符的数字  num 转换后保存字符的变量  10 转换数字的基数(进制)10就是说按照10进制转换数字。

还可以是2,8,16等等你喜欢的进制类型

原形:char *itoa(int value, char* string, int radix);

实例:

复制代码代码如下:

#include "stdlib.h"

#include "stdio.h"

main()

{

int i=1234;

char s[5];

itoa(i,s,10);

printf("%s",s);

getchar();

}

..........................................

string 转 char * 

复制代码代码如下:

char *p = string.c_str(); 
 string aa("aaa");

char *c=aa.c_str();

string mngName;

char t[200];

memset(t,0,200);

strcpy(t,mngName.c_str());

...................................................................

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

可以用CString.Format("%s",char *)这个方法来将char *转成CString。

要把CString转成char *,用操 作符(LPCSTR)CString就可以了。

cannot convert from ‘const char *‘ to ‘char *‘ const char *c=aa.c_str();

string.c_str()只能转换成const char *
CString 头文件#include <afx.h>

string 头文件#include <string.h>

CString 转char *

CString cstr;

char *p = (LPSTR)(LPCTSTR)cstr;

string 转 CString CString.format("%s", string.c_str());

char 转 CString CString.format("%s", char*);

char 转 string string s(char *);

string 转 char * char *p = string.c_str();

CString 转 string string s(CString.GetBuffer());

1,string -> CString CString.format("%s", string.c_str());

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

2,char -> string string s(char *);

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

3,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()

{

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 *

CString 转char *

CString cstr;

char *p = (LPSTR)(LPCTSTR)cstr;

string 转 CString CString.format("%s", string.c_str());

char 转 CString CString.format("%s", char*);

char 转 string string s(char *);

string 转 char * char *p = string.c_str();

CString 转 string string s(CString.GetBuffer());

1,string -> CString CString.format("%s", string.c_str());

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

2,char -> string string s(char *);

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

3,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()

{

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));

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));

时间: 2024-08-02 02:42:49

CString string char* 之间的转换的相关文章

mfc CString,string,char* 之间的转换

知识点: CString转char*,string string转char*,CString char* 转CString,string 一.CString转char*,string //字串转换测试 CString CString1; std::string string1; CHAR* char1=NULL; //1 string1=CString1.GetBuffer(); CString1.ReleaseBuffer(); //2 char1=CString1.GetBuffer();

VC CString,int,string,char*之间的转换

1 CString,int,string,char*之间的转换 string 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); string 转 char * char *p = string.c_str(); CString 转 string string s(CStr

CString, string, char *之间的相互转换(转)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 2018.09.02 1. string→CString CString.format("%s", string.c_str()); 2. CString→string string str(CString.GetBuffer(str.GetLength(

类型转换 - CString,int,string,char*之间的转换

<C++标准函数库>中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy() ................................................................. int 转 CString: CString.Format("%d",int); ..............................

CString, QString, char*之间的转换(包括VC编译开关)

传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; ch指向的地址和cstr相同.但由于使用const保证ch不会修改,所以安全.2.传给未分配内存的指针. CString cstr = "ASDDSD"; char *ch = cstr.GetBuffer(cstr1.GetLength() + 1); cstr.ReleaseBuffer(); //修改ch指向的值

string 与char* char[]之间的转换

string 与char* char[]之间的转换,有需要的朋友可以参考下. 1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().end(),迭代器可以根据他们进行定位. 注意,与char*不同的是,string不一定以NULL('\0')结束.string长度可以根据length()得到,string可以根据下标访问.所以,不能将string直接赋值给

C++ int与string或者char*之间的转换总结

#include "stdafx.h" #include <iostream> #include <string> #include <sstream> using namespace std; int main(void) { //method1 char buf[4]; itoa(123,buf,10); //自动添'\0' cout<<buf<<endl; char buf1[]="567"; int

string 与char* char[]之间的转换(转)

1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().end(),迭代器可以根据他们进行定位. 注意,与char*不同的是,string不一定以NULL('\0')结束.string长度可以根据length()得到,string可以根据下标访问.所以,不能将string直接赋值给char*. 2.string 转换成 char * 如果要将string直接

【转】CString,string,char*综合比较

(一)  概述 1.string和CString均是字符串模a板类: 2.string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: 3.CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char,wchar_t(unicode),TCHAR(ANSI与unicode均可)