-1
假設你有一個像如char str[10]
一個字符串,你是比較讓,說性格比較碰巧工作用C
if(str[i]>str[i+1])
{
// some lines of code
}
他們如何比較,該編譯器的字符轉換成它們的ASCII?想知道
假設你有一個像如char str[10]
一個字符串,你是比較讓,說性格比較碰巧工作用C
if(str[i]>str[i+1])
{
// some lines of code
}
他們如何比較,該編譯器的字符轉換成它們的ASCII?想知道
如何字符比較發生在C.如果我說
char str[] = "Hello, world!";
int i = 7;
printf("%d %d\n", str[i], str[i+1]);
if(str[i] > str[i+1]) { printf("it is greater\n"); }
將打印
119 111
it is greater
但並沒有什麼「魔法」怎麼回事,有也沒有特別的轉換。在C中,一個字符只是由一個小整數表示,它給出了機器字符集中字符的值,對於我們可以假定的所有意圖和目的,它們都是ASCII(或者它的超集Unicode)。正如任何ASCII圖表會告訴你的,'o'是111,'w'是119.
假設ASCII是濫用,但沒有風險,假設Unicode可能不正確,特別是如果'char'是默認簽名的。 – chqrlie
'char'類型可以轉換爲8位int。所以比較就像比較普通的'int'。 –
字符被轉換爲具有字符的ASCII值的整數 – antlersoft
否,沒有轉換,它們*已經* ASCII碼(假設您的實現使用ASCII)。 –