生活随笔
收集整理的這篇文章主要介紹了
经典排序算法-MFC实现之2:问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
1.如何將接收到的CString類型的數(shù)據(jù)轉(zhuǎn)換為int數(shù)組? ?????int?parseString(CString?strNum) ?{ ?????CString?c; ??????????CStringArray???sa;? ????? ?????while(1){? ?????????int?pos?=?strNum.Find(",");??????????if(pos>=0){? ?????????????sa.Add(strNum.Left(pos));??????????????strNum?=?strNum.Mid(pos+1);???????????} ?????????else?????????{? ?????????????sa.Add(strNum);???????????????break;? ?????????}? ?????}? ????? ?????int?size?=?sa.GetSize();??????if?(a) ?????{ ?????????delete[]?a; ?????}? ?????a?=?new?int[size];??????? ?????for(int???i=0;i?<sa.GetSize();i++)? ?????{? ??????????????????a[i]?=?atoi(sa.GetAt(i));? ?????}? ??????return?size; ?}? 首先說(shuō)明解析CString: 用到CString類的一些函數(shù): Find(); Left(); Right(); Mid();
動(dòng)態(tài)創(chuàng)建數(shù)組的方法: int *a = new int[10];?? //分配了一個(gè)含有10個(gè)int型元素的數(shù)組,并返回指向該數(shù)組第一個(gè)元素的指針。 int *a = new int[10](); //對(duì)數(shù)組元素值做初始化 動(dòng)態(tài)空間的釋放: delete [] a; new int(10)表示創(chuàng)建了
一個(gè)int指針,并初始化它的實(shí)例的值為10。 new int[10]表示創(chuàng)建一個(gè)
10個(gè)大小的int指針數(shù)組。 int* a = new int(10); cout << a[5] << endl; 但是,為什么可以訪問(wèn)a[5]呢,輸出0 到底分配給a多少個(gè)存儲(chǔ)單元? 訪問(wèn)了一個(gè)非法的內(nèi)存空間,里面是什么就輸出什么,如果那個(gè)位置正好存的是1,就輸出1
類型轉(zhuǎn)換: string 轉(zhuǎn) CString CString.format(”%s”, string.c_str()); char 轉(zhuǎn) CString CString.format(”%s”, char*); char 轉(zhuǎn) string string s(char *); string 轉(zhuǎn) char * char *p = string.c_str(); CString 轉(zhuǎn) string string s(CString.GetBuffer()); 1,string -> CString CString.format(”%s”, string.c_str()); 用c_str()確實(shí)比data()要好. 2,char -> string string s(char *);
只能初始化,在不是初始化的地方最好還是用assign(). 3,CString -> string string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否則就沒(méi)有釋放緩沖區(qū)所占的空間. 《C++標(biāo)準(zhǔn)函數(shù)庫(kù)》中說(shuō)的 有三個(gè)函數(shù)可以將字符串的內(nèi)容轉(zhuǎn)換為字符數(shù)組和C—string 1.data(),返回沒(méi)有”\0“的字符串?dāng)?shù)組 2,c_str(),返回有”\0“的字符串?dāng)?shù)組 3,copy() 將字符轉(zhuǎn)換為整數(shù),可以使用atoi、_atoi64或atol。
而將數(shù)字轉(zhuǎn)換為CString變量,可以使用CString的Format函數(shù)。如 CString s; int i = 64; s.Format(”%d”, i) Format函數(shù)的功能很強(qiáng),值得你研究一下。 CString互轉(zhuǎn)char* ///char * TO cstring CString strtest; char * charpoint; charpoint=”give string a value”; strtest=charpoint; ///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength()); 標(biāo)準(zhǔn)C里沒(méi)有string,char *==char []==string 可以用CString.Format(”%s”,char *)這個(gè)方法來(lái)將char *轉(zhuǎn)成CString。要把CString轉(zhuǎn)成char *,用操作符(LPCSTR)CString就可以了。 CString轉(zhuǎn)換 char[100] char a[100]; CString str(”aaaaaa”); strncpy(a,(LPCTSTR)str,sizeof(a));
轉(zhuǎn)載于:https://blog.51cto.com/shpshao/453682
總結(jié)
以上是生活随笔為你收集整理的经典排序算法-MFC实现之2:问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。