簡體   English   中英

C++ 字符減法

[英]C++ char subtraction

所以我意識到假設 ascii 編碼會給你帶來麻煩,但我從來不確定你在減去字符時會遇到多少麻煩。 我想知道哪些相對常見的情況會導致以下任何一項評估為假。

鑒於:

std::string test = "B";
char m = 'M';

A) (m-'A')==12

B) (test[0]-'D') == -2

此外,小寫值的答案是否會發生變化(將77更改為109 ofc)?

編輯: 數字減法回答了字符數字的這個問題,說標准說'2'-'0'==2 must hold for all numbers 0-9 ,但我想知道它是否適用於azAZ ,哪個部分2.3的標准在我的閱讀中不清楚。

編輯 2:刪除了 ASCII 特定內容,以更清楚地關注問題(抱歉@πάντα-ῥεῖ 進行內容更改編輯,但我覺得這是必要的)。 從本質上講,該標准似乎暗示了基本集的某些字符排序,但某些編碼不保持該排序,那么最重要的原則是什么?

換句話說,C/C++ 中的字符何時不存儲在 ASCII 中?

C 或 C++ 語言沒有任何目標系統使用的實際字符編碼表的概念。 唯一的約定是像'A'這樣的字符文字匹配當前編碼。

您也可以處理EBCDIC編碼的字符,並且代碼看起來與 ASCII 字符相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM