• c++,windows中的字符问题


    string与char*的转换方法

    string a;

    char *b=a.c_str();

    string a=new String(b);

    a=b;

    LPCWSTR是unicode的字符串,LPCSTR是ascll字符串

    你可以使用Microsoft在ATL里面提供的宏来进行转换

    #include <atlbase.h>

    USES_CONVERSION;
    LPCWSTR pw = T2W("Hello,world!"); // tchar -> wchar

    LPCTSTR pt = W2T(L"Hello,world!"); // wchar -> tchar
    等等.

    CString头文件#include <afx.h>

    string头文件#include <string.h>


    1CStringchar *

    CString cstr;

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

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

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

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

    4char string
    string s(char *);

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

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

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

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

    ―――――――――――――――――――――

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

    ―――――――――――――――――――――


    CStringintchar*char[100]之间的转换--

    1CString互转int

    (1)将字符转换为整数,可以使用atoi_atoi64atol
    (2)将数字转换为CString变量,可以使用CStringFormat函数。如
        CString s;
        int i = 64;
        s.Format(”%d”, i)
    Format函数的功能很强,值得你研究一下。

    voidCStrDlg::OnButton1()
    {
       // TODO: Add your control notificationhandler code here
       CString
       ss=”1212.12″;
       int temp=atoi(ss);
       CString aa;
       aa.Format(”%d”,temp);
       AfxMessageBox(”var is ” + aa);
    }

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


    2CString互转char*

    CString strtest;
    char * charpoint;

    ///char * TO cstring
    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*,用操作符(LPCSTRCString就可以了。


    3CString转换 char[100]

    ///char[100] TOcstring

    char a[100];
    CString str(”aaaaaa”);

    ///cstring TO char[100]

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

  • 相关阅读:
    LeetCode "Sum Root to Leaf Numbers"
    LeetCode "Single Number"
    POJ #1033
    POJ #1011
    POJ #2411
    POJ #1276
    POJ #1260
    POJ #1221
    POJ #1080
    POJ #1050
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/3891288.html
Copyright © 2020-2023  润新知