C++ 獲取字串中的中文、英文、數字等
在 C++ 程式設計中經常處理 Unicode 編碼的字串,Unicode 通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為 0 就可以。每一個字元在 Unicode 編碼表中對應為一個編號。例如:B 對應 0042
在 Unicode 編碼表中:
數字的編碼範圍為:0x0030 - 0x0039, 小寫英文字母的範圍:0x0061 - 0x007A
大寫英文字母範圍:0x0041 - 0x005A, 漢子的編碼範圍: 0x4E00 - 0x9FFF
因此我們獲取字串中的中文、英文等的思路就是獲取每一個字元的編碼,然後判斷編碼範圍是否在相應的編碼範圍內,具體程式碼如下:
std::wstring tempStr = L""; std::wstring oldStr = "中文123*&……
[email protected]h”; for(int i = 0; i < oldStr.length(); ++i) { // 獲取每個字元的第一個位元組 unsigned char* pCh = (unsigned char*)&oldStr[i]; // 數字 if((*pCh >= 0x30 && *pCh <= 0x39) && *(pCh + 1) == 0x00) { tempStr += oldStr[i]; } // 大寫字母 else if((*pCh >= 0x41 && *pCh <=0x5A) && *(pCh + 1) == 0x00) { tempStr += oldStr[i]; } // 小寫字母 else if((*pCh >= 0x61 && *pCh <= 0x7A) && *(pCh + 1) == 0x00) { tempStr += oldStr[i]; } // 希臘文字 else if((*pCh >= 0xB1 && *pCh <= 0xC9) && *(pCh + 1) == 0x03) { tempStr += oldStr[i]; } // 中文 else if (((*pCh >= 0) && (*pCh <= 0xff)) && (*(pCh + 1) >= 0x4e && *(pCh + 1) <= 0x9f)) { tempStr += oldStr[i]; } }
相關推薦
C++ 獲取字串中的中文、英文、數字等
在 C++ 程式設計中經常處理 Unicode 編碼的字串,Unicode 通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為 0 就可以。每一個字元在 Unicode 編碼表中對應為一個編號。例如:B 對應 0042在 Unicod
Object-c 中擷取包含(中、英文、表情符號emojiicon)混合字串的每個字元並獲取此字元的unicode值
ios中的nsstring 使用utf16編碼,當字串中包含中、英文、特殊字元、emojiicon 的時候,使用常規的characterAtIndex:會出現錯誤,因為這種方式是一個單元的utf16編碼位擷取,當擷取ascii範圍內的字元時,每個單元的長度是1(utf16對
C#去除字串中的中文、字母、數字
C#去除字串中的中文 使用正則表示式 1. /// /// 去除字串中的中文 /// /// /// public static string Delete
python1.返回一個字串中出現次數第二多的單詞 2.字串中可能有英文單詞、標點、空格 3.字串中的英文字元全部是小寫
import re from collections import Counter def second_count_word(s): # # 利用正則按標點和空格切割,有其他標點可以新增到[]內 # lt = re.split('[ ,.:]',s) # # 利用Counter
判斷字串是否純中文、英文、數字、等等
public void isEnglish(String str) { //【全為英文】返回true 否則false boolean result1 = str.matches("[a-zA-Z]+"); //【全為數字】返回true boo
VBA 判斷字串含中文、英文、數字(親自實踐)
Dim exp As String Dim temp, tmpExp As String Dim length As Integer length = 0 tmpExp = "" exp =
js控制文本框只能輸入中文、英文、數字與指定特殊符號
code 中英文 text 數字0 控制文本框 右鍵 彈出 false 彈出菜單 原文:http://www.open-open.com/code/view/1433592419640 JS 控制文本框只能輸入數字 <input onkeyup="value=va
C++ 在繼承中虛函數、純虛函數、普通函數,三者的區別
pre 沒有 實例 space 自己的 img 引用 虛函數 public 源地址:http://www.cnblogs.com/xudong-bupt/p/3570304.html 1.虛函數(impure virtual) C++的虛函數主要作用是“運行時多態”,父
C# 操作Word 中的OLE——插入、編輯、讀取 OLE
net 使用 water 添加引用 string 下載 system using ins 概述 OLE,Object Linking and Embedding,即對象連接與嵌入。我們在設計程序時,OLE可以用來創建復合文檔,把文字、聲音、圖像、表格、應用程序等類型的信息組
一個線上排版小工具:中文、英文、數字、符號中間加個空格
我一直相信這個世界是懶人創造的。 大家如果仔細看我的文章,會發現一個有趣的地方。就是數字、英文和中文之間會多一個空格,比如 1 是數字,1 兩邊有空格。如果你再仔細觀察,微信文字訊息的排版風格也是這樣,不信你試試。 這個排版的風格是師從 stormzhang,包括微信整個排版風格都跟他差不多,只是我比較喜歡在
abap中檢查字串長度、字串中是否有空格、前兩位是否為字元、正則表示式
IF i_mseg-charg <> ''. "字串長度 CLEAR lv_len. lv_len = strlen( i_mseg-charg ). IF lv_len < 8. MESSAGE e005(zmigo). END
java計算字串中的大寫字母、小寫字母和非字母的個數
效果如圖: 程式碼如下: import java.util.Scanner; public class Test_String1 { public static void main(String[] args) { System.out.println("請輸入字串:");
java去除字串中的空格\t、回車\n、換行符\r、製表符\t
public class StringUtils { //第一種方法 public static String replaceBlank(String str) { String dest = ""; if (str!=nu
C#獲取ftp上的資料夾、檔案目錄
C#連線ftp是比較麻煩的,特別是讀資料的時候 這裡是一行一行讀的。 資料夾和檔案差異就一行,直接貼 /// <summary> /// 獲取當前目錄下資料夾 /// </summary> ///
latex學習筆記1 latex中文、英文、數學字型設定
如果要求不高直接使用ctex巨集包就能解決一般需求,不用再設定什麼。 如果需要其他字型或者想自定義字型,那麼就使用xeLaTex(檔名不能含有中文)進行編譯,xeLaTex可是使用更多,並且更靈活的使用各種字型。 需要的巨集包有xeCJK,用於中文字型;fontspec,用
js 中文、英文、數字的輸入控制
輸入中文: <input type="text" onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')"> 輸入數字: <input type="text" on
C++ | vector 類中的 push_back( ) 函式 、(新增和刪除函式)
vector是用陣列實現的,每次執行push_back操作,相當於底層的陣列實現要重新分配大小(即先free掉原來的儲存,後重新malloc) 函式名 push_back,演算法語言裡面的一個函式名,如: 1) c++中的vector標頭檔案裡面就有這個push_
C編程中的8位、16位、32位整數的分解與合並
tdi code 比較 技術分享 size 指針 alt image amp 在單片機的編程中對於8位、16位、32位整數的分解與合並用的比較多,今天做了簡要學習,後面還需要加以總結。 練習在VC++6.0編程環境中進行,源程序:#include <stdio.h
C# 獲取Header中的token值
string datetime exceptio 解壓 else hat ont pan throw 1 public CurrentUser currentUser 2 { 3 get 4
C# 獲取json中某key對應的值,支援迭代
/// <summary> /// 從json中獲取對應key的value值 /// </summary> /// <param name="json字串"></param>