我正在搜索一個字符串,並且該字符串可能包含換行符或CRLF。我增加指針來搜索每個字符。我已將十六進制轉換爲十進制。然而,因爲我正在尋找一個字符,我不確定這將是實現這一目標的最佳方式。搜索換行符或CR/LF字符
非常感謝您的任何建議,
/*
0x0a (ASCII newline)
0x0d (ASCII carriage return)
CRLF (0x0d0a)
*/
while(*search != '\0') {
/* Seach for a newline */
if(*search == 10) {
printf("\nnewline Found\n");
}
/* Search for a CRLF */
if(*search == 3338) {
printf("\nCRLF Found\n");
}
search++;
}
我在C89模式用gcc 4.6.2編譯。
的檢查'*(search + 1)!='\ 0''在內部if語句中是不必要的,當你檢查是否是*(search + 1)=='\ n''。 – AusCBloke 2012-01-05 07:56:13
@AsusCBloke:你完全正確 - 編輯。對於我的邊界檢查過於謹慎...... – Thanatos 2012-01-05 07:58:33
''\ n''不僅更清晰,而且更準確 - 此代碼現在可用於EBCDIC系統! (...也是碰巧爲它們的行結尾使用CRLF ...) – 2012-01-05 07:59:16