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

我想在字符串中的每个\n上拆分整个字符串。我已经编写了以下代码:

vector<string> inData = "Hello\nThis 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 = "Hello\nThis is a test.\n";

for ( size_t i = 0; i < inData.length(); i++ )
{
    if(inData.at(i) == '\n')
    {
    }
}

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

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

10-01 20:51