我正在搜索一个字符串,并且该字符串可能包含换行符或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