mfc中,如何将CString 转换成 string
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc中,如何将CString 转换成 string相关的知识,希望对你有一定的参考价值。
RT
试了网上很多方法都不行,在线等。。。。
补充下 我用的vs05
有三个函数可以将字符串的内容转换为字符数组和C—string
1.data(),返回没有”\0“的字符串数组
2,c_str(),返回有”\0“的字符串数组
3,copy()
.................................................................
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本回答被提问者和网友采纳
C++ string 转化为LPCTSTR
RT,两个类型怎么转化
C++ string 转化为LPCTSTR可以参考下面的代码:
string str = "hello";
CString cstr(str.c_str());
MoveFile(cstr,.....); //CString 自动转为LPCTSTR
扩展资料:
C++ 中的 string 类
MFC中的CString类使用起来非常的方便好用,但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。
其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。
参考资料来源:百度百科-string
参考技术AC++string转化为LPCTSTR可以参考下面的代码:
Stringstr=“你好”。
CStringcstr(STR)c_str();
移动文件(装运箱,…);CString被自动转换为LPCTSTR。
扩展资料:
c++中的字符串类
MFC中的CString类非常容易使用,但是如果离开MFC框架,却有数百个不太容易使用的类怎么办?答案是肯定的,有些人可能会说,即使没有MFC框架,您也可以找到在MFC中使用API的方法。本文最后给出了具体的操作方法。
事实上,很多人可能会跳过在标准c++中使用string类。标准c++中提供的string类也非常强大,通常可以在开发项目时使用。
参考技术B 你说的string是标准库的std::string吗?LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,否则LPCTSTR = LPCSTR。
标准库的std::string转换成LPCSTR很简单:直接调用c_str()即可。例:
std::string a="abc";
LPCSTR str = a.c_str();
标准库还有一个wstring,代表宽字符的string,std::wstring转换成LPCWSTR也一样很简单:
std::wstring a = L"abc";
LPCWSTR str = a.c_str();
如果要是std::string转换成LPCWSTR或者std::wstring转换成LPCSTR那就比较麻烦了,需要调用MultiByteToWideChar或WideCharToMultiByte进行字符集之间的转换。不过大多数时候不需要这种交叉转换,一个程序一般只会使用一种字符集。
以上是关于mfc中,如何将CString 转换成 string的主要内容,如果未能解决你的问题,请参考以下文章
MFC中如何吧CString类型转换为double或int型??
MFC中如何吧CString类型转换为double或int型?
如何将 ATL/MFC CString 转换为 QString?