如何查看字符是否等于新行

How to look if a char is equal to a new line

本文关键字:于新行 是否 字符 何查看      更新时间:2023-10-16

我有一个字符串,该字符串包含例如"Hello\n这是一个测试。\n".

我想把整个字符串拆分到字符串中的每一个。我已经做了这个代码:

vector<string> inData = "HellonThis is a test.n";
for ( int i = 0; i < (int)inData.length(); i++ )
{
    if(inData.at(i) == "n")
    {
    }
}

但当我完成这项工作时,我会得到一个错误:(\n作为字符串)

binary '==' : no operator found which takes a left-hand operand of type 'char' (or there is no acceptable conversion)

(以上代码)

'==' : no conversion from 'const char *' to 'int'
'==' : 'int' differs in levels of indirection from 'const char [2]'

问题是我看不出一个字符是否等于"新行"。我该怎么做?

"n"const char[2]。请改用'n'

实际上,您的代码无论如何都不会编译。

你的意思可能是:

string inData = "HellonThis is a test.n";
for ( size_t i = 0; i < inData.length(); i++ )
{
    if(inData.at(i) == 'n')
    {
    }
}

我从您的代码中删除了vector,因为您显然不想使用它(您试图从const char[]初始化vector<string>,这将不起作用)。

还要注意使用size_t,而不是将inData.length()转换为int

您可能需要尝试=='\n'而不是"\n"。

您的测试表达式也是错误的,应该是

vector<string> inData (1,"HellonThis is a test.n");
for ( int i = 0; i < (int)(inData[0].length()); i++ )
{
    if(inData.at(i) == 'n')
    {
    }
}

你应该创建一个函数,它接受一个字符串,并返回包含吐出的行的字符串的向量,我认为