c++中字元編碼型別轉換學習自:
能實現的是utf-8和gb2312的編碼方式轉換和解碼
下面實現常見搜尋**的 搜尋詞監聽。
#include #include #include #include #include #include using namespace std;
/**注:只能處理的搜尋網頁的url編碼是utf-8或gb2312編碼方式。
*//**
1部分,資料和預處理。
寫好webtype ,webcontenttype, webdecodetype和webnum的值。
並執行前呼叫init()
webcontenttype是對應搜尋**中搜尋關鍵字的標誌入口
webdecodetype是對應搜尋**url編碼方式,0為utf-8,1為gb2312。
*/const int webnum = 10;
string webtype = ;
string webcontenttag = ;
int webdecodetype = ;
mapwebmap;
///使用前先呼叫init();
void init()
}/**
2部分;乙個url編碼和解碼的c++類。用於將提取的utf-8轉換成gb2312型別。
學習連線:
*/class strcoding
;//#include "stdafx.h"
//#include ".\urlcodeing.h"
//這是個類strcoding (strcoding.cpp檔案)
strcoding::strcoding(void)
strcoding::~strcoding(void)
void strcoding::gb2312tounicode(wchar* pout,char *gbbuffer)
void strcoding::utf_8tounicode(wchar* pout,char *ptext)
void strcoding::unicodetoutf_8(char* pout,wchar* ptext)
void strcoding::unicodetogb2312(char* pout,wchar udata)
//做為解url使用
char strcoding:: chartoint(char ch)
char strcoding::strtobin(char *str)
//utf_8 轉gb2312
void strcoding::utf_8togb2312(string &pout, char *ptext, int plen)
else
} rst[j]='\0';
pout = rst;
delete rst;
}//gb2312 轉為 utf-8
void strcoding::gb2312toutf_8(string& pout,char *ptext, int plen)
; asciistr[0] = (ptext[i++]);
}else
}return;
}//把str編碼為網頁中的 gb2312 url encode ,英文不變,漢字雙位元組 如%3d%ae%88
string strcoding::urlgb2312(char * str)
}return dd;
}//把str編碼為網頁中的 utf-8 url encode ,英文不變,漢字三位元組 如%3d%ae%88
string strcoding::urlutf8(char * str)
}return dd;
}//把url gb2312解碼
string strcoding::urlgb2312decode(string str)
return 0;
}/**
*/
c 中向上型別轉換和向下型別轉換
在c 的世界中有這樣兩個概念,向上型別轉換,向下型別轉換,分別描述的是子類向基類和基類向子類的強制型別轉換。在向上型別轉換的過程中 使用指標和引用不會造成切割,而使用直接賦值會造成切割。在向下型別轉換的過程中 使用dynamic cast進行向下強制型別轉換。使用此關鍵字有一下幾個條件 必須有虛函式...
C 轉換型別和字串
有時候我們需要互轉型別和字串,把字串轉型別 把型別轉字串。如果是基礎型別,可以使用 x.parse 這個方法,很多基礎型別都支援。那麼我們可以使用 typedescriptor string value 123 var typedescriptor typedescriptor.getconvert...
C 中隱式型別轉換和顯示型別轉換
c 支援隱式型別轉換,但前提是不損失資料精度。而c和c 不同的是,即使損失精度也會自動轉換。如 int x double y y 2.7 x y 假使賦值操作真被執行,那麼y值的小數部分將被擷取,x取得值2。這樣就發生了精度損失,或稱窄化轉換。c或c 編譯器允許這樣的賦值,不出一聲就把值給截短 然而...