天天看點

常用函數---字元串操作

C語言:

strcpy:複制char

strcat:連接配接char

strlen:長度

strcmp:比較是否一樣

strstr: 查找字元

strncpy: 複制前幾個

strtok:分割字元串,等價于Java中的split函數  (參考:https://blog.csdn.net/qq_16334327/article/details/80922417)

strrev:字元串反轉

sprintf:格式化輸出到字元串,注意區分printf是格式化輸出到螢幕;fscanf()  格式化的從檔案中讀取與 fprintf() 格式化的輸出到檔案中;sprintf 跟printf 在用法上幾乎一樣,隻是列印的目的地不同而已,前者列印到字元串中,後者則直接在指令行上輸出

printf:

fprintf:

isdigit:判斷字元是否是數組,(字元函數庫cctype、ctype.h)

isalpha:判斷字元是否是字母,(字元函數庫cctype、ctype.h)

ispunct:判斷字元是否是标點符号,(字元函數庫cctype、ctype.h)

isspace:判斷字元是否是空格,(字元函數庫cctype、ctype.h)

C++(string)

length:求字元串長度

size:與length功能一緻,length是來自早期的string類,size函數為了提供STL容器相容性而添加的

find:查找字元串或字元在字元串中首次出現的索引,沒找到傳回string::npos

find_first_of:查找字元或字元串首次出現的位置

find_last_of:查找字元或字元串最後出現的位置

find_first_not_of:找第一個不包含在參數中的字元

find_last_not_of:找最後一個不包含在參數中的字元

rfind:等同于find_last_of

substr:截取指定字元,substr有2種用法:

假設:string s = "0123456789";

string sub1 = s.substr(5);      //隻有一個數字5表示從下标為5開始一直到結尾:sub1 = "56789"

string sub2 = s.substr(5, 3);  //從下标為5開始截取長度為3位:sub2 = "567"

equals:是否相同

contains:包含

split:分割字元串,傳回的是一個String數組

isEmpty:是否為空

replace:替換指定字元,參考:https://blog.csdn.net/jiary5201314/article/details/52502516/

compare:用于比較兩個string對象是否相等,相等傳回0,注意:不可以用==來比較兩個string,用==比較的是兩者的位址,參考https://blog.csdn.net/Allenlzcoder/article/details/78254693

append:連接配接字元串,string s1 = "123"; string s2 = "456"; string s3 = s1 + s2;s3為123456,連接配接字元串還可以直接用+号,但是對編譯器有要求,比如vs2010不行,vs2013可以

MFC

Find:查找

ReverseFind:倒着找

Left:取左邊N個字元

Right:取右邊N個字元

TrimLeft:去掉字元串左側空格

TrimRight:去掉字元串右側空格

Replace:替換字元,可以用來去掉字元串中間部分的空格,例:str.Replace(" ", "") 

參考:https://blog.csdn.net/zuoyefeng1990/article/details/52300328

Trim:去掉前後空格

在指定大小區域輸出字元:

CRect rc;
CFont *pOldfont=pdc->SelectObject(&fn);            // 設定新字型
pDC->DrawText(L"一二三", rc, DT_CALCRECT);
           

擷取指定字元串長、高(像素為機關)GetTextExtent函數(是CDC函數):

void CDrawPic::AccountStr(CDC *pdc,
                          int &width,        // 字串寬度(像素)
                          int &height,        // 字串高度(像素)
                          CString str,        // 字串
                          int size,            // 字型大小
                          CString font)        // 字型名
{
    CSize txtpot;
    CFont fn;
    fn.CreatePointFont(size,(LPCTSTR)font);
    CFont *pOldfont=pdc->SelectObject(&fn);            // 設定新字型

    txtpot=pdc->GetTextExtent(str);                    // 字串的長度像素
    width=txtpot.cx;
    height=txtpot.cy;
    pdc->SelectObject(pOldfont);
}
           

繼續閱讀