MFC CString 用法小結1

來源:互聯網
上載者:User

 CString 常用方法介紹
1.      初始化方法:
(1)    直接複製,如Cstring=”mingrisoft”;
(2)    通過建構函式初始化,如   CString str(‘ ’,100)//與分配100個位元組,填充空格
            char* p=”feiqiang”; Cstring(p);delete p.

(3)    載入工程中的字串資源,如CString str;str.LoadString(IDS_STR);
(4)    使用CString類的成員函數Format初始化,如CString str; int i=0; str.Format(“value:%d”,i);

2.      將CString轉化為char*,如
         CString str=”feqiang”;
         char *p;
         p=str.GetBuffer();
         delete p;
         將char*轉化為CString,如:
         char* p=”feiqiang”;
         p[len(p)]=’/0’;
         Cstring str(p);
         char* 和char數組的轉化:
         char buf[5] ={‘a’,’b’,’c’};
         char *p;
         p=new char[5];
         p=buf;
         將字串轉化為數字:
         CString str=”12”;
         int i=atoi(str);
         long j=atoll(str);
         float f=atof(str);
         將數字轉化為字串:
         CString str;
         int i=12;
         str.Format(“%d”,i);
         long j=12;
         str,Format(“%ld”,j);
         同理其他類型。

3.      字串的相關操作即方法的使用:
         (1)    提取字串中的中文,如
         CString strtext,temp,strres;
         GetLlgItem(IDC_TEXT)->GetWindowText(strtext);//通過ID擷取編輯框中的文本
         for(int =/0;i<strtext.GetLength();i++)
  {
                   char ch=strtext.GetAt(i);
                 if(IsDBCSLeadByte(ch))
   { //判斷字元是否是雙位元組編碼的前一個位元組
                            tmp=strtext.Mid(i,2);//截取索引index1到index2的字元[  )
                            i++;
                            stress+=tmp;
   }
GetLlgItem(IDC_RESULT)->SetWindowText(strtes);//設定文字框中的文本
}
         (2)    英文字串首字母大寫,如 將以空格符分隔的英文單詞的第一個字母大寫(小寫)
         str.GetAt(i);//提取字串索引為i個字母
         str.MakeLower();//轉化為小寫
         tmp.MakeUpper();//轉化為大寫
         (2)    按制定符號分割字元:
         int pos=str.Find(strchar);//尋找字元,如果沒找到,則返回0,找到則返回字元的位置,參數可以是字元也可以是字串
         while(pos>0){
                   str1=str.Left(pos);//取左,參數為字串的個數
                   str=str.Right(str.GetLength-pos-1);//取右,參數同上
                   tmp.Format(“%s/r/n”,str1);//字串中/r/n代表斷行符號化行符
                   strres+=tmp;
                   pos=str.Find(strchar);
}
(3)    刪除指定的中文:
m_text.GetWindowText(strtxt);
m_text.GetSel(istart,iend);//得到文字框中選中的文本,並且得到文本的頭索引和尾索引
if(istart==iend)
{
         return;
}
str1=strtxt.Left(istart);
if(iend>=strtxt.GetLength())
{
         str2=””;
}
else
{
         str2=strtxt.Right(strtxt.GetLength()-iend);
}
strres+=str1;
strres+=str2;
         (4)    替換字串:
         strtxt.Replace(strchar,strnew);//用新串替換舊串
         (5)    根據CPoint尋找位置:
         CPoint pt;//擷取字串時擷取滑鼠所在字串的位置
         int pos=m_text.CharFromPos(pt);//根據pt擷取字串中的位置,即其左側字元的位置
  if(str.IsEmpty())
   {//判斷字串是否為空白
                   m_num.AddString(strres);//文字框追加字串
   }
         將字元轉化為大寫:ch=ch-32;
         (6)    字串忽略大小寫比較:
         CString str=”feiqiang”;
         int com=str.CompareNoCase(“mingri”);//如果相等返回0,否則返回-1;
         (7)    串連分行符號:CString str=”feiqiang/t”;
         (8)    字元反轉:str.MakeReverse();
         (9)    取出首位空格:str.TrimLeft(); str.TrimRight();
                  取出字串中的所有空格,str.Replace(“ ”,””);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.