【发布时间】:2010-09-28 20:52:20
【问题描述】:
我有一个来自某些 (Windows/UNIX/...) 系统的多行 ASCII 字符串。现在,我知道 Windows 和 UNIX(CR-LF / LF)中换行符的差异,我想在两个(CR 和 LF)字符上解析这个字符串,以检测这个字符串中使用了哪些换行符,所以我需要知道 VS6 C++ 中的“\n”是什么意思。
我的问题是我是否在 Visual Studio 6 for Windows 中编写代码:
bool FindNewline (string & inputString) {
size_t found;
found = inputString.find ("\n");
return (found != string::npos ? true : false);
}
这是搜索 CR+LF 还是只搜索 LF?我应该输入“\r\n”还是编译器像CR+LF一样解释“\n”?
【问题讨论】:
-
使用
inputString.find('\n'),因为你只有一个字符可以匹配。 ?不需要三元返回语句,只需使用return (found != string::npos); -
我可能想在末尾匹配更多字符和换行符。 '\n' 又是如何解释的——比如一个或多个字符?
标签: c++ visual-studio string newline