如何查找和替换Enter字符?

时间:2010-04-22 03:44:30

标签: visual-c++ char

如何查找和替换文本文件中的“输入”字符?这是我的代码:

string searchString( "\r" );   // <------- how to look for ENTER chars?
string replaceString( "XXXX" );

assert( searchString != replaceString );

string::size_type pos = 0, pos3 =0;

while ( (pos = test.find(searchString, pos)) != string::npos ) {
    test.replace( pos, searchString.size(), replaceString );
            pos++; }

3 个答案:

答案 0 :(得分:1)

搜索\r\n获取Windows格式,\n获取Linux / Unix格式,\r获取Mac格式文本文件。

答案 1 :(得分:1)

取决于您的目标。

如果您希望所有换行符看起来都一样,you'd better be thorough。根据链接的文章,至少有五种模式需要寻找:

  • Windows(CR LF)
  • Mac(CR)
  • Unix(LF)
  • Unicode行分隔符
  • Unicode段落分隔符

我认为寻找字节模式(将其视为二进制文件而不是文本文件)是可行的方法。

答案 2 :(得分:1)

输入字符为“\ n”,但在Windows中,“\ r \ n”,旧Mac“\ r”。 对于混合换行:regexp /(?&lt; [^ \ r \ n])(?:\ r | \ n | \ r \ n)(?= [^ \ r \ n])/