CString轉char * ,string

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
1
data(),返回沒有”/0“的字符串數組
2
c_str(),返回有”/0“的字符串數組
3
copy()

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


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章