bool stringMatch(const char *expr, const char *str) {
}
int main() {
string a = "a\\sb";
string b = "a b";
cout << stringMatch(a.c_str(), b.c_str()) << endl;
return 1;
}
C and C ++ by default have a backslash as escape sequences. You should tell C not to use a backslash as an escape sequence by adding an extra backslash to your string.
Here are the general escape sequences:
- \ a - ()
- \ b - Backspace
- \ f - Formfeed
- \n -
- \ r -
- \ t -
- \\ -
- \ '-
- \ "-
- \ ooo -
- \ xdd -
: XCode . .
bool stringMatch(const char *expr, const char *str) {
}
int main() {
string a = "a" "\x5C" "sb";
string b = "a b";
cout << stringMatch(a.c_str(), b.c_str()) << endl;
return 1;
}
string a, XCode , .
2: , Xcode "a\\b", , . string a = "a\\sb" , a\sb. string a , . , . , .
3: Edit 1 , .
stringMatch(), .
:
expr=[expr stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
.
4:
, Edit 3 - ObjectiveC, , Objective C++.
void searchAndReplace(std::string& value, std::string const& search,std::string const& replace)
{
std::string::size_type next;
for(next = value.find(search);
next != std::string::npos;
next = value.find(search,next)
)
{
value.replace(next,search.length(),replace);
next += replace.length();
}
}
5: const char * stringMatch() "string", .
expr.replace( pos1, n1, str );
6: C++ 11, - raw string literals.
, , :
string a = R"raw(a\sb)raw";
, raw . , )raw . , , std::regex.
, , , .