我怎么知道反斜杠是否在我的字符串中?

How can I know if the Backslash is in my string?

这个问题直接跟在这个问题之后(我在那里了解函数 find 的工作原理):

现在,考虑到我有:

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

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

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

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

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

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);

This line bool hasBackslash = (line.find("\",0) != string::npos); will look for \ in the code."

不,不会。如果您想搜索单个反斜杠,这正是您所需要的。

反斜杠在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;
}