C 中字元編碼型別轉換 和 搜尋詞監聽

2021-06-27 05:30:25 字數 1974 閱讀 3874

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 編譯器允許這樣的賦值,不出一聲就把值給截短 然而...