如何查看char是否等于新行

时间:2012-02-14 17:02:50

标签: c++ windows char newline equals

我有一个字符串,该字符串包含例如" 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]'

问题在于我无法查看char是否等于&#34; new line&#34;。我怎么能这样做?

3 个答案:

答案 0 :(得分:15)

"\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

答案 1 :(得分:4)

您可能想尝试=='\ n'而不是“\ n”。

答案 2 :(得分:1)

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

vector<string> inData (1,"Hello\nThis is a test.\n");

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

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