C++ C+中的字符串比较+;

C++ C+中的字符串比较+;,c++,string,C++,String,我正在试图找到字符串中的I的编号。这是我的密码: string str = "CS445isaninterestingcourse"; int num = 0; for (int i = 0; i < str.length(); i++) { if (str.substr(i, i + 1) == 'i') num++; } string str=“CS445isaninterestingcourse”; int num=0; 对于(int i=0;i因为问题

我正在试图找到字符串中的I的编号。这是我的密码:

string str = "CS445isaninterestingcourse";

int num = 0;

for (int i = 0; i < str.length(); i++)
{
    if (str.substr(i, i + 1) == 'i')
        num++;
}
string str=“CS445isaninterestingcourse”;
int num=0;
对于(int i=0;i
但我会犯错误。有人能帮忙吗


谢谢

substr方法返回一个字符串。您试图将字符串与字符进行比较,这是无效的。把“我”改成“我”。另外,您应该说str.substr(i,1)而不是str.substr(i,i+1)。您可以尝试以下方法:

string str="CS445isaninterestingcourse";

int num=0;

for(int i=0; i<str.length();i++)
{
    if(str.substr(i,1)=="i")
        num++;
}

substr方法返回一个字符串。您试图将字符串与字符进行比较,这是无效的。把“我”改成“我”。另外,您应该说str.substr(i,1)而不是str.substr(i,i+1)。您可以尝试以下方法:

string str="CS445isaninterestingcourse";

int num=0;

for(int i=0; i<str.length();i++)
{
    if(str.substr(i,1)=="i")
        num++;
}

您还可以使用添加到C++11标准中的正则表达式。
请参见

您还可以使用添加到C++11标准中的正则表达式。
请参见使用
std::count
。这就是它的用途:

int num = std::count(std::begin(str), std::end(str), 'i');

使用
std::count
。这就是它的用途:

int num = std::count(std::begin(str), std::end(str), 'i');

由于问题明确地提出C++:

#include <iostream>
#include <algorithm>

int main(int argc, const char * argv[])
{
   std::string str = "CS445isaninterestingcourse"; 
   size_t i = std::count(str.begin(), str.end(), 'i');
   std::cout << "Number of i's:" << i << "\n";
   return 0;
}
#包括
#包括
int main(int argc,const char*argv[]
{
std::string str=“CS445isaninterestingcourse”;
size_t i=std::count(str.begin()、str.end()、'i');

STD::CUT< P>因为问题明确地提到C++:

#include <iostream>
#include <algorithm>

int main(int argc, const char * argv[])
{
   std::string str = "CS445isaninterestingcourse"; 
   size_t i = std::count(str.begin(), str.end(), 'i');
   std::cout << "Number of i's:" << i << "\n";
   return 0;
}
#包括
#包括
int main(int argc,const char*argv[]
{
std::string str=“CS445isaninterestingcourse”;
size_t i=std::count(str.begin()、str.end()、'i');
标准::cout