在C+中查找反斜杠(\)+; 我在C++中有一个问题,后面的斜杠 \/COD>,我有这个代码: string path = "a\b\c"; int level = 0; int path_length = path.size(); for(int i = 0; i < path_length; i++){ if(path.at(i) == '\\'){ level++; } } cout << level << endl; string path=“a\b\c”; 智力水平=0; int path_length=path.size(); 对于(int i=0;i

在C+中查找反斜杠(\)+; 我在C++中有一个问题,后面的斜杠 \/COD>,我有这个代码: string path = "a\b\c"; int level = 0; int path_length = path.size(); for(int i = 0; i < path_length; i++){ if(path.at(i) == '\\'){ level++; } } cout << level << endl; string path=“a\b\c”; 智力水平=0; int path_length=path.size(); 对于(int i=0;i,c++,C++,您的字符串无效,并不是您所期望的-它应该是string path=“a\\b\\c” 您甚至会收到警告(或者至少MSV会提供警告): 警告C4129:“c”:无法识别的字符转义序列 变量中的反斜杠应该转义 string path = "a\\b\\c"; 此外,您还可以使用算法库中的count函数来避免循环字符串中的每个字符,并检查它是否为反斜杠 #include <iostream> #include <string> #include <algorithm&g

您的字符串无效,并不是您所期望的-它应该是
string path=“a\\b\\c”

您甚至会收到警告(或者至少MSV会提供警告):

警告C4129:“c”:无法识别的字符转义序列


变量中的反斜杠应该转义

string path = "a\\b\\c";
此外,您还可以使用算法库中的
count
函数来避免循环字符串中的每个字符,并检查它是否为反斜杠

#include <iostream>
#include <string>
#include <algorithm>   // for count()
using namespace std;

int main()
{
string path = "a\\b\\c";
int no_of_backslash = (int)count(path.begin(), path.end(), '\\');
cout << "no of backslash " << no_of_backslash << endl;
}
#包括
#包括
#包含//用于计数()
使用名称空间std;
int main()
{
string path=“a\\b\\c”;
反斜杠=(int)计数(path.begin(),path.end(),“\\”);

您提供的代码应该可以很好地用于正斜杠(“/”),除了您应该记住不要像在上面的反斜杠中那样在任何地方转义它们(顺便说一句,您在“a\b\c”中没有转义反斜杠)-它应该是“a\\b\\c”。