[英]String comparison in C++
我试图找到一个字符串中的i数。 这是我的代码:
string str = "CS445isaninterestingcourse";
int num = 0;
for (int i = 0; i < str.length(); i++)
{
if (str.substr(i, i + 1) == 'i')
num++;
}
但是我得到了错误。 有人可以帮忙吗?
谢谢。
由于问题明确提到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;
}
substr方法返回一个字符串。 您正在尝试将字符串与char比较,这是无效的。 只需将“ i”更改为“ i”即可。 另外,您应该说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++;
}
或者等效地,你可以说
if(str.at(i)=='i')
使用std::count
。 这就是它的用途:
int num = std::count(std::begin(str), std::end(str), 'i');
您还可以使用添加到C ++ 11标准的正则表达式内容。 参见http://www.cplusplus.com/reference/regex/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.