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