人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

批處理ASCII字符比較大小實(shí)際次序表

發(fā)布日期:2021-12-12 15:23 | 文章來源:源碼中國

在批處理中進(jìn)行 ASCII 字符串大小比較, 本來想當(dāng)然的以為其大小依據(jù)是 ASCII 字符碼值, 可事實(shí)并非如此.

以下是一個(gè) ASCII 可見字符(碼值從 32 到 126) 共 95 個(gè)字符 在批處理字符串比較中的實(shí)際次序表, 編號(hào)從 00 到 94, 編號(hào)越小, 字符也越小.

觀察此表, 總體次序 部分性地和 ASCII 次序相符. 有以下的幾個(gè)特點(diǎn):

① 所有的 標(biāo)點(diǎn)符號(hào) 在 數(shù)字字符 的前面; 所有的 數(shù)字字符 在 字母的前面;
② 數(shù)字字符中, 按對(duì)應(yīng)數(shù)字值大小排序;
③ 字母中, 不同的字母比較, 不論其大小寫, 而只以在字母表中的次序排大小;
④ 同一個(gè)字母, 小寫的小于大寫的.
⑤ 成對(duì)的 標(biāo)點(diǎn)符號(hào), 左邊的在前, 右邊的在后. 即: (小于), [小于], {小于}, <小于>

ASCII 可見字符(碼值從 32 到 126)批處理比較實(shí)際次序表

00:{ }
01:{'}
02:{-}
03:{!}
04:{"}
05:{#}
06:{$}
07:{%}
08:{&}
09:{(}
10:{)}
11:{*}
12:{,}
13:{.}
14:{/}
15:{:}
16:{;}
17:{?}
18:{@}
19:{[}
20:{\}
21:{]}
22:{^}
23:{_}
24:{`}
25:{{}
26:{|}
27:{}}
28:{~}
29:{+}
30:{<}
31:{=}
32:{>}
33:{0}
34:{1}
35:{2}
36:{3}
37:{4}
38:{5}
39:{6}
40:{7}
41:{8}
42:{9}
43:{a}
44:{A}
45:
46:{B}
47:{c}
48:{C}
49:ganrkbw
50:{D}
51:{e}
52:{E}
53:{f}
54:{F}
55:{g}
56:{G}
57:{h}
58:{H}
59:{i}
60:{I}
61:{j}
62:{J}
63:{k}
64:{K}
65:{l}
66:{L}
67:{m}
68:{M}
69:{n}
70:{N}
71:{o}
72:{O}
73:{p}
74:{P}
75:{q}
76:{Q}
77:{r}
78:{R}
79:{s}
80:{S}
81:{t}
82:{T}
83:{u}
84:{U}
85:{v}
86:{V}
87:{w}
88:{W}
89:{x}
90:{X}
91:{y}
92:{Y}
93:{z}
94:{Z}

以下是生成此表的代碼, 首先生成不包含 半角感嘆號(hào) ! 的 94 個(gè)字符的次序表, 然后根據(jù)幾個(gè)簡單比較得出 半角感嘆號(hào) 在表中的位置.
表生成代碼中, 字符排序采用選擇排序法. 字符串初始化中, 對(duì)特殊字符進(jìn)行了轉(zhuǎn)義:
用前導(dǎo)上角號(hào) ^ 轉(zhuǎn)義的有 8 個(gè)特殊字符: "&()<>^|
另外 百分號(hào) % 用自身雙寫進(jìn)行轉(zhuǎn)義.

生成除 半角感嘆號(hào) ! 外 94 個(gè)字符次序表的代碼(代碼中開啟了 延遲的環(huán)境變量擴(kuò)展, 簡化代碼起見, 故將 ! 單獨(dú)處理)

@echo off & setlocal enabledelayedexpansion & cls
(set chrs=^"#$%%^&'^(^)*+,-./01234 56789:;^<=^>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{^|}~)
echo 這是一個(gè)由 ASCII 碼值 32--126 ^(除了半角感嘆號(hào)外^) 共 94 個(gè)字符組成的字符串:
echo %chrs%
set /p=按任意鍵查看對(duì)這 94 個(gè)字符進(jìn)行初始編號(hào)...<nul&pause>nul&echo.
for /l %%i in (0,1,93) do (
  (set cc%%i=!chrs:~%%i,1!)
  set /a "ii=100+%%i"
  echo !ii:~1!:{!cc%%i!}
)
set /p=按任意鍵查看對(duì)這 94 個(gè)字符進(jìn)行排序后的次序表...<nul&pause>nul&echo.
for /l %%i in (0,1,92) do (
  set /a "min=%%i, n=%%i+1"
  (set minChr=!cc%%i!)
  for /l %%j in (!n!,1,93) do (
 if "!cc%%j!" lss "!minChr!" (
	  (set min=%%j)
	  (set minChr=!cc%%j!)
	 )
  )
  for /f "tokens=1" %%m in ("!min!") do (
 (set tt=!cc%%i!)
	(set cc%%i=!cc%%m!)
	(set cc%%m=!tt!)
  )
)
for /l %%i in (0,1,93) do (
  set /a "ii=100+%%i"
  echo !ii:~1!:{!cc%%i!}
)
set /p=按任意鍵查看插入半角感嘆號(hào)后, 95 個(gè)字符的全次序表...<nul&pause>nul&echo.
for /l %%i in (93,-1,3) do (
  set /a "jj=%%i+1"
  for /f "tokens=1" %%j in ("!jj!") do (set cc%%j=!cc%%i!)
)
setlocal disabledelayedexpansion
(set cc3=!)
setlocal enabledelayedexpansion
for /l %%i in (0,1,94) do (
  set /a "ii=100+%%i"
  echo !ii:~1!:{!cc%%i!}
)
pause
exit /b

關(guān)閉延遲的環(huán)境變量擴(kuò)展條件下 確定 半角感嘆號(hào) ! 在表中的位置的代碼

if ! lss # (echo lll) else echo ggg

輸出 lll 表明 ! 小于 #

if ! lss - (echo lll) else echo ggg

輸出 ggg 表明 ! 大于 -
- 和 # 之間只剩下一個(gè)雙引號(hào) " 感嘆號(hào) ! 和雙引號(hào) " 的大小關(guān)系又如何:

if ^! lss ^" (echo lll) else echo ggg

輸出 lll

if ^! gtr ^" (echo ggg) else echo lll

輸出 lll

if ^! equ ^" (echo ==) else echo ≠

輸出 ≠

以上表明 感嘆號(hào) ! 是小于雙引號(hào) " 的, 所以感嘆號(hào)在表中的編號(hào)應(yīng)是 03, 而雙引號(hào)及后面的所有字符編號(hào)全部加1.

到此這篇關(guān)于批處理ASCII字符比較大小實(shí)際次序表的文章就介紹到這了,更多相關(guān)ASCII字符比較大小內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部