<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # C++寬字符串相關函數 在使用visual studio 環境下編寫win32 的C++程序時,或是閱讀他人較早前在Visual Studio下編寫的程序時,對字符串的處理的這一塊總是讓人頭疼,網上好多的源碼是ANSI字符的,直接復制過來要改寫成UNICODE版本的,改成的過程中還要面對Visual Studio中定義的一大批字符串處理宏,簡直讓人頭疼,學習起來又顯得非常的雜亂,所以很有必要對這一塊的內容加以整理。 在Visual Studio 下經常可以見到 \_tcsstr??lstrcat??ws char是1字節(8位),wchar\_t是2字節(windows下16位,Linux下32位) 也就是word類型;相關的操作字符串的函數如下: ~~~ wcsstr 函數原型:wchar_t *wcsstr( const wchar_t *haystack, const wchar_t *needle ); 函數功能:在一個寬字符串haystack中搜索另一個寬字符串needle,若成功則返回一個指向后者第一次出現的位置,否則返回NULL 說明:返回指向第一次出現needle位置的指針,如果沒找到則返回NULL。 C函數: char *strstr(const char *haystack, const char *needle) ~~~ ~~~ wcscat 函數原型:wchar_t *wcscat(wchar_t *strDestination, const wchar_t *strSource); 函數功能:把strSource所指字符串添加到strDestination結尾處,覆蓋strDestination結尾處的'\0'并添加'\0'。 說明:strSource和strDestination所指內存區域不可以重疊且strDestination必須有足夠的空間來容納strSource的字符串。 返回值:返回指向strDestination的指針. No return value is reserved to indicate an error. 備注:因為wcscat在strDestination追加strSource前不進行檢查,這是一個緩沖區溢出的潛在原因。故使用時應注意。推薦使用wcscat_s替代. C函數:char *strcat(char *dest, const char *src) 說明:把 src 所指向的字符串追加到 dest 所指向的字符串的結尾 ~~~ ~~~ wcschr 函數原型:wchar_t *wcschr(wchar_t *_Str, wchar_t _Ch); 函數重載1:const wchar_t *wcschr(const wchar_t *_Str, wchar_t _Ch); 函數功能:查找字符串_Str中首次出現字符_Ch的位置 說明:返回首次出現_Ch的位置的指針,如果_Str中不存在_Ch則返回NULL C函數:char *strchr(const char *str, int c) 在參數 str 所指向的字符串中搜索第一次出現字符 c(一個無符號字符)的位置。 ~~~ ~~~ wcscmp 函數原型:int wcscmp(const wchar_t *_Str1, const wchar_t *_Str2); 函數功能:比較字符串_Str1和_Str2 說明: 當_Str1<_Str2時,返回值<0 當_Str1=_Str2時,返回值=0 當_Str1>_Str2時,返回值>0 即:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇'\0'為止。 如: "A"<"B" "a">"A" "computer">"compare" C函數:int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串進行比較 ~~~ ~~~ wcscpy 函數原型:wchar_t *wcscpy(wchar_t *_Dest, const wchar_t *_Source); 函數功能:把_Source所指由NULL結束的字符串復制到_Dest所指的數組中 說明:_Source和_Dest所指內存區域不可以重疊且_Dest必須有足夠的空間來容納_Source的字符串。 返回指向_Dest的指針 C函數:char *strcpy(char *dest, const char *src) 把 src 所指向的字符串復制到 dest。 ~~~ ~~~ wcscspn 函數原型:size_t wcscspn(const wchar_t *_Str, const wchar_t *_Control); 函數功能:按順序在字符串_Str中搜尋與_Control中字符的第一個相同字符,返回這個字符在_Str中第一次出現的位置 說明:(返回第一個出現的字符在_Str中的下標值,亦即在_Str中出現而_Control中沒有出現的子串的長度。) 簡單地說,若wcscspn()返回的數值為n,則代表字符串_Str開頭連續有n個字符都不含字符串_Control內的字符。 C函數:size_t strcspn(const char *str1, const char *str2) 檢索字符串 str1 開頭連續有幾個字符都不含字符串 str2 中的字符。 ~~~ ~~~ wcslen 函數原型:size_t wcslen(const wchar_t *_Str); 函數功能:計算字符串_Str的(unsigned int型)長度 說明:返回_Str的長度,不包括結束符NULL C函數: size_t strlen(const char *str) 計算字符串 str 的長度,直到空結束字符,但不包括空結束字符。 ~~~ ~~~ wcsncat 函數原型:wchar_t * wcsncat(wchar_t *_Dest, const wchar_t *_Source, size_t _Count); 函數功能:把_Source所指字符串的前n個字符添加到_Dest結尾處(覆蓋_Dest結尾處的'\0')并添加'\0'。 說明:_Source和_Dest所指內存區域不可以重疊且_Dest必須有足夠的空間來容納_Source的字符串。 返回指向_Dest的指針。 C函數: char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的結尾,直到 n 字符長度為止 ~~~ ~~~ wcsncmp 函數原型:int wcsncmp(const wchar_t *_Str1, const wchar_t *_Str2, size_t _MaxCount); 函數功能:比較字符串 說明:比較字符串_Str1和_Str2的大小,如果_Str1小于_Str2,返回值就<0,反之如果_Str1大于_Str2,返回值就>0,如果_Str1等于_Str2,返回值就=0,_MaxCount指的是_Str1與_Str2的比較的字符數。此函數功能即比較字符串_Str1和_Str2的前_MaxCount個字符。 C函數:int strncmp(const char *str1, const char *str2, size_t n) 把 str1 和 str2 進行比較,最多比較前 n 個字節。 ~~~ ~~~ wcsncpy 函數原型:wchar_t * wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count); 函數功能:將字符串_Source中最多_Count個字符復制到字符數組_Dest中(它并不像wcscpy一樣遇到NULL才停止復制,而是等湊夠_Count個字符才開始復制),返回指向_Dest的指針 說明:如果_Count > _Source串長度,_Dest棧空間溢出產生崩潰異常 C函數 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串復制到 dest,最多復制 n 個字符。 ~~~ ~~~ wcspbrk 函數原型:wchar_t * wcspbrk(wchar_t *_Str, const wchar_t *_Control); 函數重載1:const wchar_t * wcspbrk(const wchar_t *_Str, const wchar_t *_Control); 函數功能:在字符串_Str中尋找字符串_Control中任何一個字符相匹配的第一個字符的位置,空字符NULL不包括在內 說明:返回指向_Str中第一個相匹配的字符的指針,如果沒有匹配字符則返回空指針NULL C函數: char *strpbrk(const char *str1, const char *str2) 檢索字符串 str1 中第一個匹配字符串 str2 中字符的字符,不包含空結束字符。也就是說,依次檢驗字符串 str1 中的字符,當被檢驗字符在字符串 str2 中也包含時,則停止檢驗,并返回該字符位置。 ~~~ ~~~ wcsrchr 函數原型:wchar_t * wcsrchr(wchar_t *_Str, wchar_t *_Ch); 函數重載1:const wchar_t * wcsrchr(const wchar_t *_Str, wchar_t *_Ch); 函數功能:查找字符在指定字符串中從后面開始的第一次出現的位置,如果成功,則返回指向該位置的指針,如果失敗,則返回 false C函數:char *strrchr(const char *str, int c) 在參數 str 所指向的字符串中搜索最后一次出現字符 c(一個無符號字符)的位置。 ~~~ ~~~ wcsspn 函數原型:size_t wcsspn(const wchar_t *_Str, const wchar_t *_Control); 函數功能:返回字符串中第一個在指定字符串中出現的字符下標 說明:wcsspn()從參數_Str字符串的開頭計算連續的字符,而這些字符都完全是_Control所指字符串中的字符。簡單的說,若wcsspn()返回的數值為n,則代表字符串_Str開頭連續有n個字符都是屬于字符串_Control內的字符 C函數: size_t strcspn(const char *str1, const char *str2) 檢索字符串 str1 開頭連續有幾個字符都不含字符串 str2 中的字符。 ~~~ ~~~ wcstol 函數原型:long wcstol(const wchar_t *_Str, wchar_t **_EndPtr, int _Radix); 函數功能:這個函數會將參數_Str字符串根據參數_Radix來轉換成長整型數。參數_Radix范圍從2至36,或0。參數_Radix代表采用的進制方式,如_Radix值為10則采用10進制,若_Radix值為16則采用16進制等。當_Radix值為0時則是采用10進制做轉換,但遇到如'0x'前置字符則會使用16進制做轉換、遇到'0'前置字符而不是'0x'的時候會使用8進制做轉換。一開始wcstol()會掃描參數_Str字符串,跳過前面的空格字符,直到遇上數字或正負符號才開始做轉換,再遇到非數字或字符串結束時('\0')結束轉換,并將結果返回。若參數_EndPtr不為NULL,則會將遇到不合條件而終止的_Str中的字符指針由_EndPtr返回 ~~~ ~~~ wmemchr 函數原型:wchar_t *wmemchr(wchar_t * buf, wchar_t c,size_t count); // C++ only wchar_t *wmemchr(const wchar_t * buf, wchar_t c,size_t count); // C only C函數:void *memchr(const void *str, int c, size_t n) 在參數 str 所指向的字符串的前 n 個字節中搜索第一次出現字符 c(一個無符號字符)的位置 ~~~ ~~~ wmemcmp 函數原型: int wmemcmp(const wchar_t * buf1,const wchar_t * buf2,size_t count); C函數: int memcmp(const void *str1, const void *str2, size_t n) 把 str1 和 str2 的前 n 個字節進行比較。 ~~~ ~~~ wmemcpy 函數原型:wchar_t *wmemcpy( wchar_t *dest, const wchar_t *src, size_t count); C函數: void *memcpy(void *dest, const void *src, size_t n) 從 src 復制 n 個字符到 dest。 ~~~ ~~~ wmemmove 函數原型:wchar_t *wmemmove(wchar_t *dest,const wchar_t *src,size_t count); C函數:void *memmove(void *dest, const void *src, size_t n) 另一個用于從 str2 復制 n 個字符到 str1 的函數。 ~~~ wmemset 函數原型:wchar\_t \*wmemset( wchar\_t \*dest, wchar\_t c, size\_t count); ~~~ C函數:void *memset(void *str, int c, size_t n) 復制字符 c(一個無符號字符)到參數 str 所指向的字符串的前 n 個字符。 ~~~ 以下這些函數一般很少用: ~~~ wchar_t *wcstok( wchar_t *strToken, const wchar_t *strDelimit ) 該函數的作用是查找由在第二個串中指定的分界符分隔開的單詞。首次調用時,strToken必須指向要分解的字符串,隨后調用要把strToken設成NULL;wcstok在strToken中查找包含在 ~~~ ~~~ strDelimit中的字符并用NULL('\0')來替換,直到找遍整個字符串;返回指向下一個標記串;當沒有標記串時則返回空字符NULL。 ~~~ ~~~ size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count ) 該函數將寬字符串轉化為窄字符串。微軟另外提供的字符轉換的函數有MultiByteToWideChar和WideCharToMultiByte。 ~~~ ~~~ wchar_t *_wcsdup( const wchar_t *strSource ) 該函數復制一個字符串。 ~~~ ~~~ int _wcsicmp( const wchar_t *string1, const wchar_t *string2 ) 該函數比較字符串,但不區分大小寫。類似的函數還有_wcsnicmp。 ~~~ ~~~ wchar_t *_wcslwr( wchar_t *string ) 該函數將字符串轉化為小寫。 ~~~ ~~~ wchar_t *_wcsrev( wchar_t *string ) 該函數逆序一個字符串。 ~~~ ~~~ wchar_t *_wcsupr( wchar_t *string ) 該函數將字符串轉化為大寫。 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看