2012年9月25日 星期二

C++ - 字串大小寫轉換

字串大小寫轉換是在讀取檔案或使用者輸入文字時,常需要做的處理,沒想到我竟然會在別人的程式碼裡看到一種無言的寫法:
if ( !strcmp(p, ".pdf") || !strcmp(p, ".PDF") )
{
        ...
}
這段程式碼是判斷檔案是否為PDF,p是存放檔案名稱的字元陣列。這種判斷方法是一種很笨的寫法。

C++有strlwr(char * _str)函式可將字元陣列中的英文字母轉成小寫,而strupr(char * _str)函式則是轉成大寫,函式庫是string.h。C語言也有tolower(int c)和toupper(int c)可以使用,不過一次只能轉一個字元,要配合迴圈才能轉換字元陣列。

字串比對時,如果要忽略大小寫,C++有strcmpi(const char * _str1, const char * _str2)函式可以用。

沒有留言: