考慮下面的字符*如木炭:創建一個從字符*包括轉義字符
char* s = "\n";
這怎麼可能轉化成表示新行字符,像這樣一個單個字符:
char c = '\n';
除了處理換行符之外,我還需要能夠將任何帶有轉義字符的字符轉換爲字符。這怎麼可能?
考慮下面的字符*如木炭:創建一個從字符*包括轉義字符
char* s = "\n";
這怎麼可能轉化成表示新行字符,像這樣一個單個字符:
char c = '\n';
除了處理換行符之外,我還需要能夠將任何帶有轉義字符的字符轉換爲字符。這怎麼可能?
char c = *s;
作品。
'\n'
裏面的字符串只有兩個字符的源代碼形式:編譯後它是單個字符;對於所有其他轉義字符也是如此。
字符串"fo\111\tar"
,編譯後,具有7個字符(在源代碼(6可見'f'
,'o'
,'\111'
,'\t'
,'a'
,和'r'
)和空的終止子)。
+1 - 告訴過你:-p – JonH 2011-05-12 19:03:00
是的,沒錯。謝謝@JonH :) – pmg 2011-05-12 19:15:15
非常棒,謝謝@pmg。 – AgileVortex 2011-05-12 20:07:46
你的意思是這樣的嗎?
char * s = "\n";
char c = *s;
取消對它的引用:
char* s = "\n";
char c = *s;
正如其他人所說,換行實際上只有一個字符在記憶中。要從字符串指針中獲取單個字符,可以像訪問數組一樣訪問指針(當然,假設爲指向的字符串分配了內存):
char* s = "\n";
char c = s[0];
'char c = * s;'工作。字符串中的''\ n''只有兩個字符的形式:編譯後它是一個字符;對於所有其他轉義字符也是如此。編譯後的字符串'「fo \ 111 \ tar」有7個字符(源代碼中可見6個,空終止符)。 – pmg 2011-05-12 18:56:33
@pmg - 這不是一個評論發佈的答案! – JonH 2011-05-12 18:58:20
@pmg:JonH是對的。發帖 – Heisenbug 2011-05-12 18:59:23