1. 程式人生 > >C++ 獲取字串中的中文、英文、數字等

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>