看書的時候遇到:對于以下字符串,strlen(s)的值為:(1)char s[10] = { 'A', '\0', 'B', 'C', '\0', 'D' };(2)char s[ ] = "\t\v\\\0will\n";(3)char s[ ] = "\x69\082\n";
2 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
首先,你要明確:字符串結束的標志是\0。
其次,你要明白:\t,\v是轉義字符,是字符常量。
最后,你要知道:strlen( )函數的作用是測試字符串長度(不包括\0)。
char s[10] = { 'A', '\0', 'B', 'C', '\0', 'D' };
當運行strlen(s)時,從起始地址s開始掃描,到\0時結束操作,返回一個整型數1。
char s[ ] = "\t\v\\\0will\n";
在這個字符串中\0前面有3個轉義字符\t\v\\,所以返回3。
char s[ ] = "\x69\082\n";
\x69 是一個轉義字符,意思是十六進制的69在ASCII中所代表的字符。

ITMISS
TA貢獻1871條經驗 獲得超8個贊
遇到\0就表示該字符串結束,后面即使再長也都不參與計算……
所以第一的長度是1,
第二個的\是轉移字符,\t表示一個字符,后面同理;
第三個x69是16進制數,其實還是一個字符
明白了么?
添加回答
舉報
0/150
提交
取消