这个问题直接跟进了这个问题(我在那里了解函数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);
将在代码中查找\\
。
我如何知道给定的行是否包含反斜杠?
答案 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;
}