如何知道反斜杠是否在我的字符串中?

时间:2015-01-19 16:08:56

标签: c++ find

这个问题直接跟进了这个问题(我在那里了解函数find的工作原理):Find escaped characters in a string line

现在,考虑到我:

string line = "bla bla bla \i blabla"
bool hasBackslash = (line.find("\",0) != string::npos);

我只是想知道我的行是否包含\,但是,当然,在find中,我写的内容将逃脱引号字符。

此行bool hasBackslash = (line.find("\\",0) != string::npos);将在代码中查找\\

我如何知道给定的行是否包含反斜杠?

3 个答案:

答案 0 :(得分:3)

  

此行bool hasBackslash = (line.find("\\",0) != string::npos);会在代码中查找\\。“

不,不会。如果你想搜索一个反斜杠,那正是你需要的。

答案 1 :(得分:1)

要在字符串文字中嵌入反斜杠,您需要将它们转义

string line = "bla bla bla \i blabla"
bool hasBackslash = (line.find("\",0) != string::npos);

应该是

string line = "bla bla bla \\i blabla"
bool hasBackslash = (line.find("\\",0) != string::npos);

答案 2 :(得分:0)

反斜杠的C表示为"\\"。注意:反斜杠是一个转义字符。

例如,当您读取标准输入或文件的反斜杠时,它可以用"\\"

的字符串表示

我准备了一个可以测试它的例子: https://ideone.com/aTCeSL

#include <iostream>
using namespace std;

int main() {
    string line;
    cout << "Enter a backslash" << endl;
    getline(cin, line);
    bool hasBackslash = (line.find('\\') != string::npos);
    cout << (hasBackslash ? "You have entered a backslash" : "No backslash found");
    return 0;
}