zoukankan      html  css  js  c++  java
  • 【转】char*,string,CString,int,char[]之间的转换

    CString 头文件#include <cstring>
    string 头文件#include <string.h>

    1.CString 转char *

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

    p=cstr.GetBuffer(strtest.GetLength());   

    2.string 转 CString
    CString.format(”%s”, string.c_str());  
    《C++标准函数库》中说的有三个函数可以将字符串的内容转换为字符数组和CString:
    1.data(),返回没有”/0“的字符串数组。
    2.c_str(),返回有”/0“的字符串数组。
    3.copy()。

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

    4.char* 转 string
    string s(char *);  
    只能初始化,在不是初始化的地方最好还是用assign()。

    5.string 转 char *
    char *p = string.c_str();  
    用c_str()确实比data()要好。

    6.CString 转 string
    [cpp] view plaincopy
    string s(CString.GetBuffer());  
    GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间。

    7.CString互转int
    将字符转换为整数,可以使用atoi、_atoi64或atol。
    而将数字转换为CString变量,可以使用CString的Format函数。Format函数的功能很强,值得你研究一下。

    CString ss=”1212.12″;  
    int temp=atoi(ss);  
    CString aa;  
    aa.Format(”%d”,temp);  
    AfxMessageBox(”var is ” + aa);  

    8.CString转换 char[100]
    char a[100];  
    CString str(”aaaaaa”);  
    strncpy(a,(LPCTSTR)str,sizeof(a));  

  • 相关阅读:
    二 、异常
    Java的基本概念
    Oracle case when
    oracle exists
    一 、前言
    location
    HTTP1.1初识
    数学学习笔记(持续更新中)
    [NOIP2017 提高组] 列队 题解
    [NOI2019] 回家路线 题解
  • 原文地址:https://www.cnblogs.com/xiongyunqi/p/4389320.html
Copyright © 2011-2022 走看看