[英]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
,但我想知道它是否適用於az
和AZ
,哪個部分2.3
的標准在我的閱讀中不清楚。
編輯 2:刪除了 ASCII 特定內容,以更清楚地關注問題(抱歉@πάντα-ῥεῖ 進行內容更改編輯,但我覺得這是必要的)。 從本質上講,該標准似乎暗示了基本集的某些字符排序,但某些編碼不保持該排序,那么最重要的原則是什么?
換句話說,C/C++ 中的字符何時不存儲在 ASCII 中?
C 或 C++ 語言沒有任何目標系統使用的實際字符編碼表的概念。 唯一的約定是像'A'
這樣的字符文字匹配當前編碼。
您也可以處理EBCDIC編碼的字符,並且代碼看起來與 ASCII 字符相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.